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 엔진으로 돈다.
'기타 정보 > 꿀팁' 카테고리의 다른 글
| 윈도우 서버 자동 업데이트 끄기 - Windows Update Blocker 하나면 끝 (0) | 2026.07.24 |
|---|---|
| 윈도우 11 설치 시 MS 계정 없이 로컬 계정 만들기(2026년 되는 방법 총정리) (0) | 2026.07.23 |
| Windows 11 게임 창모드 설정이 자꾸 초기화 될 때 (0) | 2025.03.08 |
| 소득세 원천징수 조정 신청하기 (3) | 2025.01.25 |
| iOS 시작 번호 스팸 문자 필터링 (1) | 2024.11.20 |
댓글