Windows Subsystem for Linux
Windows 10부터 지원하는 기능으로, Windows에 Linux를 설치하는 기능이다.
Categories
- wslconfig -
~/.wslconfig파일 위치.
Check
설치 방법
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 기능을 활성화 해보자:
컴퓨터 재부팅은 필수.
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 배포를 설치하는 데 필요한 기능을 사용하도록 설정합니다.
Ubuntu 24.04 설치하고 싶다면:
배포판 목록 보기
특정 배포판 접속하기
WSL2 Ubuntu 접속:
WSL2 버전을 기본으로 설정
기본 버전을 2로 설정한다:
특정 배포본에 지정된 버전 정보를 확인하는 방법:
특정 배포본을 버전 2로 설정한다:
WSL 종료
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까지 지원 확대
- wsl.exe는 그대로 남겨 사용자 전환을 지원함
WSL2
Troubleshooting
WslRegisterDistribution failed with error: 0x800701bc
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2? ?? ?? ????? ?????. ??? ??? https://aka.ms/wsl2kernel? ????? .
이때 linux 커널 업데이트 패키지를 다운로드해주면 문제가 해결 된다. 이 곳 으로 이동하여 업데이트를 다운받고 설치하자.
이 후 WSL 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을 실행하여 유효성을 검사할 수 있습니다.
"hypervisorlaunchtype Off"가 표시되면 하이퍼바이저가 사용하지 않도록 설정된 것입니다. 이를 사용하도록 설정하려면 관리자 권한 powershell에서 다음을 실행합니다.