Wsl/CallMsi/REGDB_E_CLASSNOTREG 에러 시 해결법

저는 powershell에 wsl --install를 입력하여 WSL 설치하려 했으나,

계속 Error code: Wsl/CallMsi/REGDB_E_CLASSNOTREG 가 떴었습니다. windows 공홈, github 등 여러 사이트를 헤집고 다녔으나 몇 시간이 넘도록 도움되는 글은 찾지 못했습니다. WSL이 windows 하위 시스템으로 들어온지 오래된게 아니여선지 WSL 개발진이 남긴 글을 보니 자신들도 설치과정에서 오류가 잦은 걸 해결하는 중이라고 밝혔습니다.

 

아무튼 끝끝내 해결법을 찾았습니다. 아래에 해결법을 적겠습니다.

 

 

1. github에서 msi 파일을 다운 후 실행

먼저 자신의 시스템이 x64인지 arm64인지 확인을 합니다.시스템 종류 확인 방법: 설정 > 시스템 > 정보(맨 밑에 있음) > 시스템 종류(장치 사양에 있음)확인 후 아래 github에 들어가셔서 자신에게 맞는 msi 파일 하나를 다운 후 실행하면 자동설치가 됩니다.

 

https://github.com/microsoft/WSL/releases/tag/2.2.4

 

Release 2.2.4 · microsoft/WSL

Tweak WslPlugin CustomConfigurationFlags behavior to take into account InTune policies.

github.com

 

 

2. wsl --install 하기

powershell을 우클릭 후 관리자의 권한으로 실행합니다.

wsl --install

위 코드를 실행합니다. 만약 에러가 안 뜨고 원할하게 ubuntu 설치가 된다면 여기서 해결은 끝났습니다.

만약 아직 해결이 안 됐다면 다음 단계로 넘어갑니다.

 

 

3. 아직도 오류가 뜰 시

"windows 기능 추가/제거"를 검색하고 실행합니다.

windows 기능 켜기 끄기

이런 창이 뜨면 Linux용 Windows 하위 시스템이 체크됐는지 확인합니다.

만약 체크가 돼있으면 끄고 재부팅합니다. 그리고 다시 체크한 후 재부팅을 합니다. 

체크가 안 돼있으면 체크한 후 재부팅을 합니다.

 

다시 2번으로 돌아가 wsl --install 코드를 실행합니다.