Computer >> 컴퓨터 >  >> 시스템 >> Windows

WSL(Windows용 Linux 하위 시스템) 오류 메시지 및 코드 문제 해결 총정리

모든 소프트웨어가 그렇듯이 Windows Subsystem for Linux(WSL2) 역시 다양한 문제에 노출되어 있습니다. 이 가이드에서는 WSL 사용 시 자주 마주치는 대표적인 오류 메시지와 코드 20가지를 하나씩 짚으며 해결 방법을 자세히 알아보겠습니다.

WSL 오류, 문제 및 이슈 해결하기

아래는 이 글에서 다룰 WSL 오류 메시지와 코드 목록입니다.

  1. WSL 2 옵션이 보이지 않음
  2. 오류: 0x1bc
  3. 설치 시 오류: 0x80040306
  4. Windows에서 WSL 파일에 접근할 수 없음
  5. WSL 2 배포판이 시작되지 않고 출력에 'WSL 2'만 표시됨
  6. 명령을 찾을 수 없음(Command Not Found)
  7. 오류: 0x80370102 — 필수 기능이 설치되지 않아 가상 머신을 시작할 수 없음
  8. Windows 업데이트 후 오류: 0x80040154
  9. WSL이 오류 0x80070003과 함께 작동 중지됨
  10. WSL에서 표시 언어가 변경됨
  11. Windows 시스템 복원 후 설치 문제 발생
  12. WSL에서 인터넷에 접속할 수 없음
  13. Ping 사용 시 권한 거부(Permission Denied)
  14. WSL 2 설치 후 부팅 불가
  15. 배포판 내부에서 Windows 명령을 실행할 수 없음
  16. ICS가 비활성화됨
  17. Bash가 멈춤(Hung)
  18. OpenSSH-Server 연결 문제
  19. 참조된 어셈블리를 찾을 수 없음
  20. SSH 관련 권한 오류 수정

그럼 지금부터 각 항목을 하나씩 살펴보겠습니다.

1. WSL 2 옵션이 보이지 않는 경우

많은 Windows 사용자들이 빌드 번호 1903 이상인데도 WSL 2 옵션이 나타나지 않는다고 호소합니다. 이는 컴퓨터에 WSL 2 백포트(backport) 업데이트가 아직 적용되지 않았기 때문입니다.

해결 방법은 간단합니다. Windows 설정에서 업데이트 확인을 실행해 최신 업데이트를 설치하면 됩니다.

2. 오류: 0x1bc

"디스플레이 언어(Display Language)" 또는 "시스템 로캘(System Locale)"이 영어로 설정되어 있지 않으면 다음과 같은 오류가 나타날 수 있습니다.

wsl --set-default-version 2

Error: 0x1bc

For information on key differences with WSL 2 please visit https://aka.ms/wsl2

이 오류를 해결하려면 먼저 커널(Kernel)이 컴퓨터에 설치되어 있는지 확인해야 합니다. 아래 명령어를 사용하세요.

dir %SystemRoot%\system32\lxss\tools\kernel

커널이 없다면 aka.ms에서 다운로드하면 됩니다. 반드시 관리자 권한으로 다운로드한 뒤 커널을 설치하면 오류가 해결됩니다.

3. 설치 시 오류: 0x80040306

WSL(Windows용 Linux 하위 시스템) 오류 메시지 및 코드 문제 해결 총정리

설치 과정에서 오류 0x80040306이 발생한다면 레거시 콘솔(Legacy Console)을 비활성화해야 합니다. 아래 단계를 따라 진행하세요.

  1. 시작 메뉴에서 명령 프롬프트(Command Prompt)를 관리자 권한으로 실행합니다.
  2. cmd 로고를 마우스 오른쪽 버튼으로 클릭하고 속성(Properties)을 선택합니다.
  3. "레거시 콘솔 사용(Use legacy console)" 옵션의 체크를 해제한 후 확인을 누릅니다.

완료한 후 문제가 해결되었는지 확인합니다.

4. Windows에서 WSL 파일에 접근할 수 없는 경우

WSL(Windows용 Linux 하위 시스템) 오류 메시지 및 코드 문제 해결 총정리

Windows에서 \\wsl$ 경로를 통해 WSL 파일에 접근할 수 없다면, 9P 프로토콜 파일 서버가 시작되지 못했을 가능성이 큽니다.

가장 손쉬운 해결책은 컴퓨터를 업데이트하고 "Windows 업데이트에서 Microsoft 제품 업데이트 받기" 옵션을 활성화하는 것입니다. 아래 단계를 따르세요.

  1. Win + I 키를 눌러 설정(Settings)을 실행합니다.
  2. 업데이트 및 보안 > 고급 옵션으로 이동합니다.
  3. "Windows를 업데이트할 때 다른 Microsoft 제품의 업데이트도 함께 받기" 토글을 활성화합니다.

이렇게 하면 문제가 해결됩니다.

5. WSL 2 배포판이 시작되지 않고 'WSL 2'만 출력되는 경우

디스플레이 언어가 영어로 설정되어 있지 않으면 이 오류가 발생합니다. WSL 2를 시작하려고 할 때 다음과 같은 출력만 표시됩니다.

C:\Users\me>wsl

WSL 2

이 오류를 해결하려면 커널을 수동으로 다운로드하여 설치해야 합니다. aka.ms/wsl2kernel에서 파일을 받아 커널을 설치하면 간단히 해결됩니다.

6. 명령을 찾을 수 없음(Command Not Found)

Linux 환경에서 Windows의 .exe 파일을 실행할 때 흔히 겪는 오류입니다. 실행 시도 시 다음과 같은 메시지가 표시될 수 있습니다.

$ notepad.exe

-bash: notepad.exe: command not found

이는 $PATH 환경 변수가 해당 .exe 파일을 찾지 못해서 발생합니다. 가장 좋은 해결책은 터미널에서 아래 명령어를 실행하는 것입니다.

export PATH=$PATH:/usr/sbin

실행 후 오류가 해결되었는지 확인합니다.

7. 오류: 0x80370102 — 필수 기능이 설치되지 않아 가상 머신을 시작할 수 없음

많은 사용자가 Linux 배포판을 설치하려 할 때 이 오류를 경험합니다. 앞선 오류들과 달리 이 문제는 해결 방법이 여러 가지이므로, 차례대로 모두 시도해 보시기 바랍니다.

오류 0x80370102를 해결하기 위해 시도할 수 있는 방법은 다음 세 가지입니다.

  1. Hyper-V 활성화
  2. 하드웨어 가상화(Hardware Virtualization) 활성화
  3. 중첩 가상화(Nested Virtualization) 활성화

Hyper-V 활성화

WSL(Windows용 Linux 하위 시스템) 오류 메시지 및 코드 문제 해결 총정리

Hyper-V가 없으면 가상 환경을 생성할 수 없습니다. 아래 단계에 따라 활성화하세요.

  1. 시작 메뉴에서 제어판(Control Panel)을 엽니다.
  2. 프로그램 및 기능 > Windows 기능 켜기/끄기로 이동합니다.
  3. 목록을 스크롤하여 Hyper-V를 찾아 체크한 후 확인을 클릭합니다.

Hyper-V를 활성화한 후 문제가 해결되었는지 확인합니다.

하드웨어 가상화 활성화

가상 머신을 실행하려면 하드웨어 가상화가 필수적입니다. 오류 0x80370102가 계속된다면 BIOS에서 하드웨어 가상화 기능을 활성화해 보세요.

중첩 가상화 활성화

중첩 가상화는 VM 내부에서 하이퍼바이저를 실행할 수 있게 해줍니다. 그래도 오류가 지속된다면 중첩 가상화를 활성화해 보세요. PowerShell을 관리자 권한으로 실행한 뒤 아래 명령어를 입력합니다.

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

명령 실행이 완료되면 문제가 해결되었는지 확인합니다.

8. Windows 업데이트 후 오류: 0x80040154

WSL(Windows용 Linux 하위 시스템) 오류 메시지 및 코드 문제 해결 총정리

Windows 업데이트 과정에서 WSL 기능이 비활성화되면 이 오류가 나타날 수 있습니다. 따라서 해당 옵션을 다시 활성화해야 합니다. 아래 단계를 따라 진행하세요.

  1. 시작 메뉴에서 제어판(Control Panel)을 실행합니다.
  2. 프로그램 및 기능 > Windows 기능 켜기/끄기로 이동합니다.
  3. Windows Subsystem for Linux를 찾아 체크한 후 확인을 클릭합니다.

마지막으로 컴퓨터를 재시작하고 문제가 지속되는지 확인합니다.

9. WSL이 오류 0x80070003과 함께 작동 중지되는 경우

WSL이 오류 코드 0x80070003과 함께 중단된다면, 별도의 전용 해결 가이드를 참고하여 문제를 해결할 수 있습니다.

10. WSL에서 표시 언어가 변경되는 경우

WSL은 Windows 컴퓨터의 언어에 맞추기 위해 Ubuntu 로캘(locale)을 자동으로 변경합니다. 이 동작이 마음에 들지 않다면, 아래 명령어로 원하는 표시 언어를 직접 설정할 수 있습니다.

참고: 아래 명령어는 언어를 en-US(영어·미국)로 변경합니다.

sudo update-locale LANG=en_US.UTF8

실행 후 문제가 해결되었는지 확인합니다.

11. Windows 시스템 복원 후 설치 문제

Windows 시스템 복원 이후 설치 문제가 발생한다면, Windows Subsystem for Linux 폴더를 삭제해 보세요. 해당 경로는 다음과 같습니다.

%windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux

폴더 삭제 후 컴퓨터를 재시작하고 Bash를 다시 설치한 뒤 문제가 해결되었는지 확인합니다.

12. WSL에서 인터넷에 접속할 수 없는 경우

많은 사용자가 WSL 내부에서 인터넷에 접속하지 못한다고 보고했습니다. 생각보다 원인은 간단합니다. 서드파티 백신 프로그램의 방화벽이 인터넷 연결을 차단하는 경우가 대부분입니다. 이 경우 백신 프로그램을 제거하면 문제가 해결됩니다.

13. Ping 사용 시 권한 거부(Permission Denied)

WSL에서 Ping 명령이 작동하지 않는다면 관리자 권한이 없다는 의미입니다. Ubuntu와 Linux를 관리자 권한으로 실행하거나, 명령줄 인터프리터에서 Bash.exe를 관리자 권한으로 구동해야 합니다.

이렇게 하면 문제가 쉽게 해결될 것입니다.

14. WSL 2 설치 후 부팅되지 않는 경우

WSL 2 설치 후 부팅이 되지 않는 정확한 원인은 아직 명확히 밝혀지지 않았지만, Microsoft가 이 문제를 진단하기 위한 업데이트를 준비 중입니다. 우선 다음 두 가지 방법을 시도해 볼 수 있습니다.

  • 시스템 복원 지점(System Restore Point)을 사용해 오류를 복구합니다.
  • 그래픽 드라이버를 최신 버전으로 업데이트하고 문제가 해결되는지 확인합니다.

15. 배포판 내부에서 Windows 명령을 실행할 수 없는 경우

Microsoft Store의 일부 배포판은 모든 Windows 명령을 실행하도록 완전히 최적화되어 있지 않습니다. 이 경우 다음과 같은 오류가 나타날 수 있습니다.

-bash: powershell.exe: command not found
powershell.exe /c start

이 오류를 해결하려면 먼저 아래 명령어를 실행합니다.

echo $PATH

출력 결과에 "/mnt/c/Windows/system32"가 포함되어 있는지 확인합니다. 오류가 발생하고 있다면 대부분 이 경로가 목록에 없을 것입니다.

다음으로 아래 명령어로 프로필 설정을 확인합니다.

cat /etc/profile

Path 할당 부분이 "#"으로 시작한다면 해당 블록을 주석 처리합니다. 또한 wsl.conf 파일이 있는지 확인하고, appendWindowsPath=false 항목이 있다면 이를 주석 처리합니다.

이후 배포판을 재시작해야 합니다. 아래 명령어를 사용하세요.

wsl -t <배포판 이름>

또는

wsl --shutdown

이렇게 하면 문제가 해결될 것입니다.

16. ICS가 비활성화된 경우

WSL은 ICS(Internet Connection Sharing, 인터넷 연결 공유) 없이는 작동할 수 없습니다. HNS(Host Network Service)는 ICS를 활용해 WSL 2가 NAT, DNS, DHCP 및 호스트 연결 공유를 구현할 수 있는 기본 가상 네트워크를 구축합니다.

이 오류를 해결하려면 ICS를 활성화해야 합니다. 아래 단계를 따르세요.

  1. 시작 메뉴에서 서비스(Services)를 실행합니다.
  2. Internet Connection Sharing (ICS)을 더블클릭하고, 서비스가 중지 상태라면 시작(Start)을 클릭합니다.
  3. 마지막으로 적용(Apply) > 확인(Ok)을 클릭합니다.

또한 일부 그룹 정책도 수정해야 합니다. 그룹 정책 편집기(Group Policy Editor)를 실행하고 아래 위치로 이동합니다.

컴퓨터 구성 > 관리 템플릿 > 네트워크 > 네트워크 연결

그리고 다음 정책들을 비활성화합니다.

  • DNS 도메인 네트워크에서 네트워크 브리지 설치 및 구성 금지
  • DNS 도메인 네트워크에서 인터넷 연결 방화벽 사용 금지
  • DNS 도메인 네트워크에서 인터넷 연결 공유 사용 금지
  • 네트워크 위치 설정 시 도메인 사용자의 권한 상승 요구

17. Bash가 멈추는 경우

Bash가 멈추거나 교착 상태(deadlock)에 빠져 입력에 응답하지 않을 때는 컴퓨터를 재시작하거나 메모리 덤프(memory dump)를 보고할 수 있습니다. 단, 메모리 덤프 보고는 시스템 크래시로 이어질 수 있으므로 반드시 작업 내용을 미리 저장해 두세요.

18. OpenSSH-Server 연결 문제

OpenSSH-Server 연결 문제가 발생하면 가장 먼저 OpenSSH-Server가 실행 중인지 확인해야 합니다. 아래 명령어를 사용하세요.

sudo service ssh status

실행 중이 아니라면 아래 명령어로 서비스를 시작합니다.

sudo service ssh start

이미 실행 중이라면 아래 명령어로 서비스를 재시작한 후 문제가 해결되는지 확인합니다.

sudo service ssh restart

문제가 해결되지 않으면 디버그 모드로 SSHD를 시작해 보세요. 먼저 아래 명령어로 SSH 서비스를 중지합니다.

sudo service ssh stop

그런 다음 아래 명령어로 디버그 모드에서 SSHD를 실행합니다.

sudo /usr/sbin/sshd -d

이 방법으로 오류가 해결되기를 바랍니다.

19. 참조된 어셈블리를 찾을 수 없는 경우

많은 사용자가 WSL 추가 기능을 활성화하려 할 때 "참조된 어셈블리를 찾을 수 없습니다(The referenced assembly could not be found)" 오류를 겪습니다. 제어판에서 Windows Subsystem for Linux를 활성화하고 컴퓨터를 업데이트하면 이 오류가 해결될 것입니다.

20. SSH 관련 권한 오류 수정

아래와 같은 오류가 표시된다면 이 섹션의 해결 방법을 참고하세요.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.

이 문제를 해결하기 위해 Microsoft는 /etc/wsl.conf 파일에 다음 내용을 추가할 것을 권장합니다.

[automount]
enabled = true
options = metadata,uid=1000,gid=1000,umask=0022

이렇게 하면 오류가 해결됩니다. 작업 전에 충분한 파일 권한이 있는지 반드시 확인하세요.

지금까지 Windows Subsystem for Linux에서 자주 발생하는 오류 메시지와 코드, 그리고 각각의 문제 해결 팁을 살펴보았습니다. 이 가이드가 여러분의 WSL 오류와 문제를 해결하는 데 도움이 되기를 바랍니다.