본문 바로가기
기타 정보/꿀팁

WSL 설치가 손상된 것 같습니다 오류 해결 (Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG)

by 째스터 2026. 7. 31.
728x90

Docker Desktop을 쓰려고 WSL을 설치하는데 이런 메시지가 떴다.

wsl: WSL 설치가 손상된 것 같습니다(오류 코드: Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG).
아무 키나 눌러 WSL을 복구하거나 CTRL-C 취소하세요.
이 프롬프트는 60초 후 시간이 초과됩니다.

아무 키나 눌러 복구를 시도해도 같은 오류만 반복됐다.

결론부터

Windows Installer(MSI)를 거치지 않고 WSL을 직접 설치하면 해결된다.

관리자 권한 PowerShell에서:

winget install --id Microsoft.WSL

winget이 없거나 막혀 있으면 GitHub 릴리스 페이지에서 .msixbundle 파일을 받아 더블클릭으로 설치해도 된다. (App Installer로 설치되기 때문에 MSI를 안 탄다)

설치가 끝나면 이어서:

wsl --install --no-distribution

이 명령이 "가상 머신 플랫폼" Windows 기능을 켜준다. 재부팅하라는 메시지가 나오면 재부팅 후:

wsl --install Ubuntu

2026년 7월 기준 WSL 2.7.11이 설치되는 걸 확인했다.

이 오류의 원인

REGDB_E_CLASSNOTREG는 "Class not registered", 즉 COM 클래스가 등록되지 않았다는 오류다.

WSL 자체 문제가 아니다. wsl --install과 저 복구 프롬프트가 내부적으로 Windows Installer(MSI)를 호출하는데, 이 MSI 쪽이 깨져 있거나 막혀 있으면 WSL이 애꿎게 "설치가 손상됐다"는 메시지를 띄운다.

그래서 MSI를 고치는 대신 MSI를 안 쓰는 설치 경로(winget, msixbundle)로 우회하는 게 가장 빠르다.

삽질 기록 (정공법이 막혔던 이유)

처음에는 Windows Installer 서비스를 고쳐보려고 했다.

Get-Service -Name msiserver
Set-Service -Name msiserver -StartupType Manual

그런데 관리자 권한 PowerShell인데도 "Access is denied"가 떴다.

진짜 관리자 권한인지도 확인해 봤다. 아래 명령의 결과가 나오면 관리자다.

([Security.Principal.WindowsIdentity]::GetCurrent()).Groups -match "S-1-5-32-544"

관리자가 맞는데도 거부됐다. 회사 PC라 그룹 정책으로 서비스 변경이 막혀 있었던 것으로 보인다. (이러면 regsvr32 msi.dll, sfc /scannow 같은 정공법도 어차피 못 쓴다)

이런 상황이라 MSI 우회 설치가 답이었다. 회사 PC에서 이 오류를 만났다면 서비스랑 씨름하지 말고 바로 우회 경로로 가는 걸 추천한다.

Docker Desktop 마무리 설정

배포판 설치까지 끝났으면:

  • Docker Desktop 완전히 종료 (트레이 아이콘에서 Quit)
  • 다시 실행 후 Settings -> General에서 "Use the WSL 2 based engine" 체크 확인
  • Settings -> Resources -> WSL Integration에서 설치한 배포판 활성화 확인

이러면 Docker Desktop이 정상적으로 WSL2 엔진으로 돈다.

728x90

댓글