Skip to content

Windows Subsystem for Linux

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

Categories

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.exe 로 설치하기

wsl 를 그냥 치면:

zer0@DESKTOP-11F854J C:\Users\zer0>wsl
Linux용 Windows 하위 시스템 설치되어 있지 않습니다. 'wsl.exe --install' 실행하여 설치할  있습니다.
자세한 내용은 https://aka.ms/wslinstall
 참조하세요.
Linux용 Windows 하위 시스템 설치하려면 아무 키나 누르세요.
CTRL-C 누르거나  창을 닫아 취소하세요.
 프롬프트는 60초  시간이 초과됩니다.
작업이 중단되었습니다.

wsl --install 를 치면:

zer0@DESKTOP-11F854J C:\Users\zer0>wsl --install
다운로드 : Linux용 Windows 하위 시스템 2.6.2
설치 : Linux용 Windows 하위 시스템 2.6.2
Linux용 Windows 하위 시스템 2.6.2이() 설치되었습니다.
Windows 선택적 구성 요소 설치 : VirtualMachinePlatform

배포 이미지 서비스  관리 도구
버전: 10.0.26100.5074

이미지 버전: 10.0.26200.7462

기능을 사용하도록 설정하는 
[==========================100.0%==========================]
작업을 완료했습니다.
요청한 작업이  실행되었습니다. 시스템을 다시 시작하면 변경 사항이 적용됩니다.

중간에 배포 이미지 서비스 및 관리 도구 가 출력되는걸 보니 dism.exe를 Subprocess 로 실행하는 듯 하다.

이제 시스템을 다시 시작하자.

배포판 설치

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

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

Ubuntu 24.04 설치하고 싶다면:

wsl --install -d Ubuntu-24.04

배포판 목록 보기

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

특정 배포판 접속하기

WSL2 Ubuntu 접속:

wsl -d Ubuntu-24.04

WSL2 버전을 기본으로 설정

기본 버전을 2로 설정한다:

wsl --set-default-version 2

특정 배포본에 지정된 버전 정보를 확인하는 방법:

wsl --list --verbose

특정 배포본을 버전 2로 설정한다:

wsl --set-version Ubuntu-24.04 2

WSL 종료

wsl --shutdown

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는 그대로 남겨 사용자 전환을 지원함

WSL2

  • WSL2는 단순한 VM이 아닌가요? | GeekNews
  • Windows NT의 서브시스템 구조는 다른 운영체제용 프로그램을 실행하기 위한 API 호출 변환 계층으로 구성되어 왔음
  • WSL1은 이러한 전통을 잇는 형태로, 리눅스 호출을 윈도우 커널 호출로 변환하는 가벼운 번역 계층으로 동작
  • WSL2는 성능 문제를 해결하기 위해 Hyper-V 기반의 완전한 리눅스 VM으로 전환되었으며, 실제 리눅스 커널을 실행
  • WSL2는 동적 메모리 관리, Windows 드라이브 마운트, WSLg를 통한 GUI 통합 등으로 일반 VM보다 높은 통합성을 제공
  • 파일 관리의 불편함과 디스크 이미지 의존성 등 한계가 있지만, WSL1과 WSL2의 장단점을 선택적으로 활용할 수 있는 유연성이 중요

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