Skip to content

Windows Subsystem for Linux

Windows 10부터 지원하는 기능으로, Windows에 Linux를 설치하는 기능이다.

Check

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

설치 방법

BIOS 설정에서 Vitualization Technology 가 활성화 되어있는지 확인하고

Windows 기능 켜기/끄기에서 "Linux용 Windows 하위 시스템"과 "가상 머신 플랫폼" 을 체크해야 한다.

또는 명령행에서 다음을 실행:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

컴퓨터 재부팅은 필수.

이 단계에서 #배포판 설치를 진행하자.

혹시라도 안된다면 Hyper-V 기능을 활성화 해보자:

dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart

컴퓨터 재부팅은 필수.

배포판 설치

이 명령은 WSL을 실행하고 Linux의 Ubuntu 배포를 설치하는 데 필요한 기능을 사용하도록 설정합니다.

wsl --install -d <배포 이름>

배포판 목록 보기

wsl -l -o
## 또는
wsl --list --option

WSL2 버전을 기본으로 설정

wsl --set-default-version 2

Root directory

ubuntu설치 시 아래의 경로를 확인하면 된다.

C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

오픈소스 전환

Microsoft는 WSL 전체를 오픈소스로 전환했다고 발표했으며, 이는 Microsoft/WSL 저장소의 첫 번째 이슈였던 “오픈소스가 될까요?”에 대한 응답이기도 함

  • GitHub의 Microsoft/WSL에서 소스를 내려받고 직접 빌드하거나 기능을 추가하고 버그를 수정할 수 있음
  • 공개된 코드는 커맨드라인 도구, 서비스, Linux용 데몬, Plan9 기반 파일 공유 서버까지 포함함
  • WSL은 Windows 실행부와 리눅스 가상머신(VM) 내에서 동작하는 여러 컴포넌트로 구성됨
    • CLI 도구: wsl.exe, wslconfig.exe, wslg.exe
    • WSL 서비스: VM 부팅, 배포판 실행, 파일 공유 등을 담당하는 wslservice.exe
    • Linux 데몬: init, gns, localhost 등 네트워크 및 포트 포워딩 기능 수행
    • Plan9 서버: Windows와 Linux 간 파일 공유 역할
  • 기존에 오픈소스로 공개된 구성요소
    • WSLg: Wayland 및 X 서버를 지원하는 그래픽 환경 관련 구성요소
    • WSL2-Linux-Kernel: 리눅스 커널 소스
  • 아직 오픈되지 않은 구성요소
    • Lxcore.sys: WSL1의 핵심 드라이버
    • P9rdr.sys, p9np.dll: Windows에서 \wsl.localhost 경로를 지원하는 파일 리다이렉션 시스템

오픈소스 전환 배경과 WSL의 역사

  • WSL은 2016년 BUILD에서 처음 발표되어 Windows 10 Anniversary Update에 포함됨
  • WSL1은 Windows 커널 내에서 Linux syscalls를 처리하는 lxcore.sys 기반의 구조였음
  • WSL2는 2019년 처음 발표되었고, 실제 리눅스 커널을 활용해 호환성과 기능을 개선함
  • 이후 GPU 지원, GUI 앱 실행(wslg), systemd 지원 등 기능이 추가되며 성장함
  • 2021년부터는 Windows에서 분리된 독립 패키지로 Microsoft Store를 통해 제공됨
    • 첫 릴리스는 0.47.1 (프리뷰), 이후 2022년 1.0.0에서 Windows 10까지 지원 확대
  • Windows 11 24H2부터는 기존 내장 WSL에서 새로운 패키지 기반 WSL로 전환됨
    • wsl.exe는 그대로 남겨 사용자 전환을 지원함

Troubleshooting

WslRegisterDistribution failed with error: 0x800701bc

WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2? ?? ?? ????? ?????. ??? ??? https://aka.ms/wsl2kernel? ????? .

이때 linux 커널 업데이트 패키지를 다운로드해주면 문제가 해결 된다. 이 곳 으로 이동하여 업데이트를 다운받고 설치하자.

이 후 WSL 2를 기본 버전으로 설정

wsl --set-default-version 2

WslRegisterDistribution failed with error: 0x80370102

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
For information please visit https://aka.ms/enablevirtualization
Press any key to continue...

BIOS 설정에서 Vitualization Technology 가 활성화 되어있는지 확인하자.

만약 Virtual Box를 사용한다면, 추가로 "Nested Virtualization" 항목을 확인하자:

  • VT-x/AMD-V 활성화
  • Nested Paging 활성화

부팅 구성에 하이퍼바이저 시작이 사용하도록 설정되어 있는지 확인합니다. 관리자 권한 powershell을 실행하여 유효성을 검사할 수 있습니다.

bcdedit /enum | findstr -i hypervisorlaunchtype

"hypervisorlaunchtype Off"가 표시되면 하이퍼바이저가 사용하지 않도록 설정된 것입니다. 이를 사용하도록 설정하려면 관리자 권한 powershell에서 다음을 실행합니다.

bcdedit /set hypervisorlaunchtype Auto

See also

  • Windows
  • dism - 배포 이미지 서비스 및 관리 도구
  • bcdedit - 부팅 구성 데이터 저장소 편집기

Favorite site