윈도우 11에서 WSL(Windows Subsystem for Linux) Ubuntu가 설치 목록에서 증발했다면? Store 다운로드도, ‘wsl –install’도 먹히지 않는 난관을 겪는 사용자가 늘고 있습니다. 실제 복구 경험을 토대로 DISM·SFC 복원부터 ‘–web-download’ 재설치까지 핵심 솔루션을 한 번에 안내합니다.
WSL Ubuntu 설치 실패, 어디에서 막히는가?
윈도우 10·11 사용자라면 ‘Ubuntu 빨리 깔아서 터미널 돌려야지’ 하고 마음먹었다가 “해당 배포판을 찾을 수 없습니다”라는 차가운 문구를 마주한 경험이 한 번쯤 있을 것이다. 증상은 단순하지만 원인은 복잡하다. 이 장에서는 ‘설치 불가’ 현상의 전형적인 징후와 실패 패턴을 먼저 살펴본다.
증상: 배포판이 보이지 않거나 설치가 즉시 종료
- Microsoft Store에서 Ubuntu(또는 다른 배포판)를 클릭해도 ‘설치’ 버튼이 회색으로 비활성화.
- 관리자 PowerShell에서
wsl --install
명령을 입력하면 ‘미리 지정된 배포판을 찾을 수 없습니다’ 또는 오류 코드 0x80370102 반환. wsl --list --online
결과가 비어 있거나, 이미 설치된 배포판조차Staged
상태에서 더 이상 진행되지 않음.
진단: 이미 시도해봤지만 소용없던 방법
가상화 설정을 켜고 끄거나, Hyper‑V 기능을 다시 활성화하고, WSL 자체를 제거·재설치해 보았을 것이다. 심지어 dism /online /disable-feature
및 /enable-feature
를 반복해도 문제는 잠잠해지지 않는다. 이유는 ‘표면적 증상’이 시스템 내부의 손상된 이미지, 드라이버 충돌, 또는 스토어 라이브러리 불일치 같은 근본 원인에 불과하기 때문이다.
장애 로그에서 발견되는 단서
C:\Windows\Logs\DISM\dism.log
파일을 열어 보면 ‘source files could not be found’ 또는 ‘HRESULT 0x800f081f’ 같은 메시지가 보인다. 이는 운영체제 이미지에 필요한 구성 요소를 찾지 못했다는 뜻으로, 단순히 WSL만 다시 설치해서는 해결되지 않는다.
근본 원인: 무엇이 WSL 설치를 가로막는가?
1) Windows 시스템 파일 손상
누적 업데이트 중단, 갑작스러운 전원 차단, 디스크 불량 등으로 윈도우 이미지가 손상되면 WSL이 의존하는 가상화·컨테이너 관련 DLL을 불러오지 못한다. DISM이 ‘복구 가능(repairable)’ 상태를 알려주지만 소스가 없으면 자동 정비가 이뤄지지 않는다.
2) 드라이버 또는 Windows Update 충돌
가상 네트워크 어댑터, 가상화 지원 칩셋 드라이버가 오래됐거나 Update로 대체되면서 버전 불일치가 발생할 수 있다. 특히 OEM 노트북은 전용 NVMe·GPU 드라이버가 필수인데, 일반 업데이트용 드라이버가 덮어쓰면 WSL 2의 경량 VM이 시작 단계에서 ‘가상 스위치 초기화 실패’로 종료된다.
3) Microsoft Store 라이브러리 문제
기업 네트워크, 지역 제한, 손상된 캐시 등으로 Store 연결이 끊기면 Ubuntu 패키지를 내려받지 못한다. 이때 숨겨진 해결책이 --web-download
옵션이다. Store 대신 CDN에서 직접 패키지를 받아 설치해 Store 의존성을 없앤다.
해결 절차: 따라 하면 반드시 성공하는 5단계
① Windows 이미지 복구(DISM & SFC)
Windows 공식 ISO를 마운트해 install.wim
을 소스로 지정, 손상된 시스템 파일을 교체한다.
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /RestoreHealth /Source:X:\Sources\install.wim
SFC /scannow
- ISO는 Microsoft 홈페이지 ‘미디어 생성 도구’를 이용해 내려받으면 된다.
- 일부 ISO는
install.esd
형식이므로Dism /export-image
로 WIM 변환 후 사용 가능. /RestoreHealth
가 ‘소스를 찾을 수 없다’고 하면 WIM 경로 오타, 드라이브 문자 교체 실패, 이미지 인덱스 불일치 가능성을 점검한다.
TIP: 올바른 인덱스 선택
ISO 하나에 Home·Pro 등 여러 에디션이 들어있다. Dism /Get-WimInfo /WimFile:X:\Sources\install.wim
으로 자신의 에디션 인덱스를 먼저 확인하자.
② Windows Update 일시 정지
복구 작업 도중 누적 업데이트가 끼어들면 동일 DLL이 잠겨 오류가 날 수 있다. 설정 > Windows Update > ‘업데이트 일시 정지’로 최소 1주일 멈춰두면 DISM 파일 교체가 수월하다.
③ 드라이버 최신화
제조사 또는 IObit Driver Booster 같은 도구를 활용해 칩셋·스토리지·네트워크 드라이버를 최신으로 맞춘다. 가상화 확장(VT‑d, IOMMU)을 지원하는 BIOS 패치가 포함된 경우 필수 적용.
④ WSL 재설치
wsl --unregister Ubuntu # 잔여 데이터가 없어도 실행
wsl --shutdown
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
wsl --install --distribution Ubuntu
# Store 불안정 시
wsl --install --distribution Ubuntu --web-download
--web-download
는 스토어 API를 우회해.appx
패키지를 직접 내려받아 설치한다.- PowerShell을 ‘관리자 권한’으로 열어야 기능 활성화가 정상 동작한다.
⑤ 재부팅 후 상태 확인
wsl --list --verbose
Ubuntu-22.04
가 VERSION 2(VM 기반)으로 뜨면 성공이다. 만약 VERSION 1이라면 wsl --set-version Ubuntu-22.04 2
로 수동 업그레이드하자.
추가 팁: 실패를 방지하는 체크리스트
체크 항목 | 이유·효과 |
---|---|
BIOS/UEFI 가상화(VT‑x·AMD‑V) 활성화 | Hyper‑V 레이어 및 WSL 2 엔진 구동 필수 |
설치 공간 2 GB 이상 확보 | ext4.vhdx 생성 단계에서 공간 부족 오류 방지 |
wsl --set-default-version 2 실행 | 새 배포판을 자동으로 WSL 2 기반으로 설치 |
Windows Insider 프리뷰 빌드 주의 | 미리보기에는 WSL 핵심 DLL 교체 실험이 포함되므로 불안정 |
가상화 기반 보안(VBS) 설정 확인 | Credential Guard가 VM 메모리를 예약하면 WSL 디스크가 마운트 실패 가능 |
왜 DISM + WSL 재설치 조합이 통할까?
WSL 2의 내부 구조
WSL 2는 경량 VM(가상 머신)으로, Hyper‑V의 무가상화(VBS‑Lite) 스택 위에 9p 프로토콜 공유 드라이버, Plan9 파일 서버를 이용한다. 시스템 파일이 손상되면 Hyper‑V 서비스가 VM Worker Process를 띄우지 못해 초기화 단계에서 ‘no usable hypervisor found’ 에러가 뜬다.
DISM이 해결하는 영역
DISM /RestoreHealth
는 손상된 OS 구성 요소 스토어(Component Store) 내 amd64_microsoft‑hyper‑v‑*
파일군을 설치 원본과 비교해 치환한다. 이후 SFC가 하위 DLL, 레지스트리 참조 값을 재정렬해 WSL 서비스가 다시 정상 호출된다.
웹 다운로드가 Store 장애를 우회하는 방식
--web-download
는 운영체제 내부의 ‘App Installer 서비스’를 호출해 Store와 동일한 패키지를 CDN에서 받아온 뒤, add‑appxpackage
뒤에서 실행된다. 따라서 Store 캐시 손상·기업용 오프라인 Store 무효 상태여도 WSL 2 커널 패키지, Ubuntu_xxxxx.appxbundle
을 직접 설치한다.
FAQ: 자주 묻는 질문
Q1. WSL 1은 정상인데 2만 설치가 실패합니다.
A. WSL 1은 가상화 기능이 필요 없으므로 VM 플랫폼 드라이버 손상 여부를 먼저 확인하세요. DISM 복구 후에도 dism /online /enable-feature /featurename:VirtualMachinePlatform
명령이 0x800f0922를 반환하면, Hyper‑V 기능 충돌 또는 보안 소프트웨어가 원인일 수 있습니다.
Q2. wsl --install --web-download
가 0x80370114 오류를 냅니다.
A. 이 오류는 시스템 다시 시작 보류 상태에서 각종 기능을 켜려 할 때 발생합니다. DISM·SFC 완료 후 꼭 재부팅하고 다시 시도하세요.
Q3. ISO가 install.esd만 포함해 /Source
지정이 안 됩니다.
A. PowerShell 관리자 모드에서Dism /Export-Image /SourceImageFile:install.esd /DestinationImageFile:install.wim /SourceIndex:6
로 변환한 뒤, 해당 WIM을 /Source
에 넣으면 동일하게 작동합니다.
Q4. WSL 실행 후 ‘파일 시스템이 읽기 전용입니다’라고 나와요.
A. 이는 ext4.vhdx
가 디스크 불량으로 손상됐을 때 나타납니다. 새 배포판을 등록해도 동일하면 SSD S.M.A.R.T 값을 확인하세요.
Q5. 기업용 네트워크에서 웹 다운로드도 차단될 때는?
A. 오프라인 패키지 배포를 지원합니다. Microsoft Learn 문서에서 .msixbundle
, .appx
파일 URL을 확인 후 USB로 옮겨 Add-AppxPackage
로 설치하면 됩니다.
고급 진단: 로그 파일과 이벤트 뷰어 읽는 법
WSL 서비스 로그
WSL 2는 기본적으로 %USERPROFILE%\.wslconfig
에서 로깅 레벨을 조절할 수 있다.
[wsl2]
memory=4GB processors=4 loglevel=debug
loglevel=debug
로 설정한 후 재부팅하면 %LOCALAPPDATA%\Packages\CanonicalGroup...
폴더 아래에 세부 로그가 생성된다. ‘Failed to connect to the hypervisor’ 같은 문구가 있으면 하드웨어 가상화가 비활성화되었거나, 백신이 VT API 호출을 차단했을 가능성이 높다.
이벤트 뷰어 필터링 팁
1. Windows 로그 > 시스템에서 ‘Hyper‑V‑VMMS’ 공급자를 필터링한다.
2. 이벤트 ID 30
(가상 머신 시작 실패), 18560
(가상 스위치 오류)를 찾아보면 최근 오류 타임스탬프를 확인할 수 있다.
3. 동일 시간대에 ‘Store Licensing’, ‘AppX Deployment’ 항목에 경고가 찍혀 있으면 Store 라이브러리 손상으로 설치 실패가 이어졌음을 의미한다.
성능과 안정성을 모두 잡는 후속 작업
WSL 커널 수동 업데이트
WSL 2는 리눅스 커널을 독립적으로 관리한다.wsl --update
를 입력하면 최신 LTS 커널로 교체한다. 커널 빌드 번호가 6.1.x
이상이면 NVMe paravirtual 드라이버와 AMD GPU HIP 통합 패치가 포함돼 I/O 및 GPGPU 작업 속도가 최대 20 % 향상된다.
자동 압축 백업으로 디스크 보호
WSL 2의 가상 디스크는 VHDX 파일 하나라, 단일 손상에도 전체 리눅스 환경이 사라질 위험이 있다. 다음 스크립트로 주기 백업을 걸어 두자:
$src = "$env:USERPROFILE\.wsl\Ubuntu-22.04\ext4.vhdx"
$dest = "D:\WSLBackup\ext4_$(Get-Date -f yyyyMMdd).vhdx"
Compress-Archive $src $dest
하루 한 번 작업 스케줄러로 실행하면 SSD Wear Level을 크게 올리지 않으면서도 복구 지점을 확보한다.
WSL 파라미터 튜닝
localhostForwarding=true
: Windows 방화벽을 거치지 않는 로컬 포트 포워딩. 서버 사이드 개발 시 빠른 핫리로드.pageReporting=true
: 사용하지 않는 페이지를 즉시 호스트에 반납해 메모리 사용량 감소.dnsTunneling=true
: 사내 DNS를 우회해 리눅스 쪽에서 퍼블릭 DNS를 우선 사용.
보안 고려 사항
VBS(가상화 기반 보안)와의 공존
Windows 11은 기본적으로 VBS가 켜져 있을 수 있다. VBS가 메모리 영역을 보호하면서 WSL 2 VM이 사용하는 메모리의 SMM 접근을 제한하면 간헐적인 ‘memory enclave’ 오류가 발생한다.
해결책: gpedit.msc
> ‘장치 보안’ > ‘가상화 기반 보안 끄기’ 정책을 사용 안 함으로 전환하거나, bcdedit /set hypervisorlaunchtype auto
로 Hyper‑V를 우선 로드해 충돌을 방지한다.
안티바이러스 예외 추가
리눅스 파일 시스템은 NTFS 위 VHDX 레이어를 타고 동작한다. 일부 실시간 감시 백신이 ext4.vhdx
를 스캔하면서 디스크 대기열 지연을 일으키고, 이 과정에서 잠금 오류가 WSL 세션 종료로 이어질 수 있다. “C:\Users…\ .wsl*.vhdx” 경로를 예외로 지정하면 I/O 지연이 크게 줄어든다.
WSL Ubuntu 재설치 이후 해야 할 것
패키지 업데이트 및 로케일 설정
sudo apt update && sudo apt full-upgrade -y
sudo update-locale LANG=ko_KR.UTF-8
한국어 개발 환경이 필요한 경우 명시적으로 로케일을 설정하지 않으면 Git, Python 패키지가 ANSI 인코딩으로 로그를 남겨 터미널 깨짐이 나타날 수 있다.
Windows Terminal과 연동
Microsoft Store 버전 Windows Terminal을 열고 settings.json
에서 새 프로필을 추가하면 터미널 테마·폰트를 자유롭게 바꿀 수 있다. Nerd Font 계열을 적용하면 이모지 및 아이콘을 깔끔하게 표시할 수 있다.
GPU 가속 활용
WSL 2는 CUDA·ROCm을 공식 지원한다. NVIDIA GPU라면 sudo apt install nvidia-cuda-toolkit
후 wsl --shutdown
, AMD GPU는 AMD GPU Drivers for WSL을 설치하고 동일 절차를 밟으면 된다. 머신러닝 학습 속도가 네이티브 Linux 환경과 유사할 정도로 향상된다.
맺음말: ‘설치 불가’에서 ‘정상 구동’까지, 오늘 안에 끝낸다
WSL Ubuntu 설치 실패는 표면적으로 ‘배포판 오류’에 불과하지만, 실제로는 윈도우 시스템 손상과 드라이버 불일치가 얽힌 복합 장애다. DISM·SFC로 이미지 기반을 정비하고, 드라이버를 최신으로 맞춘 뒤, Store 대신 ‘–web-download’로 우회 설치하면 해결 가능성을 극대화할 수 있다. 이 가이드를 따라 30분만 투자하면 여러분의 터미널은 다시 초록색 프롬프트를 띄우고, 개발·데브옵스·교육 업무를 원활히 이어갈 수 있다.