Windows 11 25H2에서 WSL2 설치하다 일주일 날린 사람의 기록


“WSL2 설치요? 5분이면 되죠”라고 말한 과거의 나에게 전하는 글.

TL;DR

Windows 11 25H2(빌드 26200)에서 VirtualMachinePlatform 활성화가 37.8%에서 영원히 멈춘다. 일주일간 10가지 방법을 시도한 끝에 찾은 원인: 서비싱 스택(24H2)과 OS(25H2)의 버전 불일치. Windows가 자기 자신을 서비싱 못 하는 코미디.

# 일주일을 두 줄로 요약하면 이겁니다
Add-WindowsCapability -Online -Name "Microsoft.Windows.HyperV.VirtualMachinePlatform~~~~0.0.1.0"
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /LimitAccess

읽기 귀찮으면 위에 두 줄만 치세요. 근데 왜 이 두 줄에 도달하는 데 일주일이 걸렸는지 알고 싶으면 계속 읽으시길.


발단

WSL2에 Ubuntu 24.04를 올리려고 했다. 누구나 하는 거다. 공식 문서에도 “한 줄이면 됩니다”라고 써있다.

wsl --install -d Ubuntu-24.04

37.8%.

멈췄다.

커피를 마시고 왔다. 37.8%.

점심을 먹고 왔다. 37.8%.

37.8이라는 숫자가 꿈에 나올 뻔했다.

범인의 프로필

항목
OSWindows 11 Pro 25H2 (빌드 26200.8037)
CPUIntel Core Ultra 9 275HX
PCHP 노트북
DISM 버전10.0.26100.5074
서비싱 스택10.0.26100.8035

이 표를 보고 “어 버전이 다른데?”라고 눈치챈 분은 이미 이 글의 결말을 알고 계신 겁니다. OS는 26200인데 서비싱 스택은 26100. Windows가 자기 버전도 못 맞추고 있었다.

안 되는 것들의 대향연

1일차: GUI로 시도

“Windows 기능 켜기/끄기”에서 가상 머신 플랫폼을 체크했다. 프로그레스 바가 멈췄다.

취소를 눌렀다. 취소도 멈췄다.

취소를 취소할 수 없는 시스템. 이게 세계 시가총액 1위 기업의 운영체제다.

작업 관리자로 강제 종료.

2일차: 명령어의 세계로

GUI가 안 되면 CLI지. 프로그래머의 본능.

dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

37.8%. 또 너.

PowerShell로도 해봤다.

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All -NoRestart

같은 결과. 내부적으로 같은 DISM을 부르니까. 옷만 갈아입혀봤자 같은 사람인 것처럼.

3일차: 범인을 BlueStacks로 지목

인터넷을 뒤졌다. “안드로이드 에뮬레이터가 Hyper-V랑 충돌한다”는 글을 발견. BlueStacks 10이 설치되어 있었다.

“이놈이었구나!” 하고 완전 삭제. 폴더까지 수동으로 지움. 레지스트리까지 뒤짐.

결과: 37.8%.

BlueStacks: “저 아닌데요”

괜히 지웠다. 나중에 다시 깔아야 한다.

4일차: 오프라인 설치 시도

“인터넷 다운로드가 문제라면 오프라인으로 하면 되지!” 24H2 ISO를 받아서 마운트했다.

dism /online /enable-feature /featurename:VirtualMachinePlatform /all /LimitAccess /Source:D:\Sources\Install.wim

0x800f0912.

ISO가 24H2(26100)인데 OS가 25H2(26200). 버전이 안 맞으니 소스로도 안 받아준다. “넌 내가 아니야”라며 거부하는 Windows.

5일차: Windows Update 캐시 대청소

net stop wuauserv
net stop bits
Remove-Item C:\Windows\SoftwareDistribution\Download\* -Recurse -Force
net start bits
net start wuauserv

깔끔해진 캐시. 변함없는 37.8%. 청소한다고 집값이 오르는 건 아니듯.

보류 작업도 정리해봤다.

dism /online /cleanup-image /revertpendingactions

보류는 정리됐는데 활성화는 여전히 실패. 밀린 숙제를 치웠는데 시험은 또 다른 문제인 것처럼.

6일차: 인플레이스 설치 (핵옵션)

“그냥 Windows를 덮어씌우자.” 24H2 ISO의 setup.exe를 실행. “개인 파일 및 앱 유지” 선택.

40분 걸렸다. 재부팅 3번.

결과: OS가 25H2(26200)로 유지됨. 다운그레이드 안 됨. 인플레이스 설치가 만능은 아니었다.

그래도 이전 시도들로 쌓인 보류 작업과 컴포넌트 스토어는 정리됐다. 이게 나중에 결정적 복선이 된다.

7일차: 로그를 읽다 (드디어 머리를 쓰다)

일주일간 “될 때까지 다른 거 시도”만 반복했다. 이쯤 되면 뭐가 안 되는지가 아니라 왜 안 되는지를 봐야 한다.

CBS 로그를 열었다.

Select-String -Path C:\Windows\Logs\CBS\CBS.log `
  -Pattern "Error|Failed|0x800f" -Context 2 | Select-Object -Last 20

범인이 드러났다:

Failed to get uup features from WU, sessionData: {
  "ModuleID":"FOD",
  "Features":[{
    "name":"Windows.HyperV.OptionalFeature.VirtualMachinePlatform.Client.Disabled~"
  }]
} [HRESULT = 0x800f0820 - CBS_E_CANCEL]
download source: 8, download time (secs): 1256, 
download status: 0x800f0820 (CBS_E_CANCEL)

1256초(약 21분) 동안 Windows Update에서 FOD를 다운로드하려다 타임아웃.

DISM 로그에서 결정적 증거:

Dism.exe version: 10.0.26100.5074
Target image: OS Version=10.0.26200.8037

서비싱 스택은 26100인데 OS는 26200. 서비싱 도구가 자기보다 높은 버전의 OS를 수리하려고 하니, Windows Update에서 맞는 부품을 못 찾는 것이다.

자동차 정비소에 2024년식 차를 가져갔는데 정비사가 2023년 매뉴얼밖에 없는 상황. “이 부품은 저희 카탈로그에 없는데요?”

이게 세계 최대 소프트웨어 기업의 운영체제 서비싱 시스템이다.

해결: DISM이 못 가는 길을 돌아가다

원인을 알았으니 우회로를 찾으면 된다.

Add-WindowsCapability는 DISM과 다른 채널로 패키지를 가져온다. DISM이 UUP(Unified Update Platform)에서 삽질하는 동안, 이 친구는 다른 문으로 들어간다.

# Step 1: 뒷문으로 페이로드 설치
Add-WindowsCapability -Online -Name "Microsoft.Windows.HyperV.VirtualMachinePlatform~~~~0.0.1.0"

# Step 2: 인터넷 차단하고 로컬 파일로 활성화
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /LimitAccess

100%.

100%.

일주일 만에 처음 보는 세 자리 숫자.

왜 이게 되는 건데

[정문 — 막힘]
DISM enable-feature
  → FOD 필요
  → Windows Update UUP 채널
  → 서비싱 스택(26100) ≠ OS(26200)
  → "이 부품 카탈로그에 없는데요?"
  → 21분 대기 → 타임아웃

[뒷문 — 통과]
Add-WindowsCapability  
  → UUP 안 거침
  → 페이로드 로컬에 설치됨

DISM + /LimitAccess
  → "인터넷? 그런 거 안 씀"
  → 로컬 파일만 사용
  → 성공

같은 건물인데 정문이 공사 중이라 안 열린다. 뒷문은 열려 있다. 그런데 안내 표지판은 정문밖에 안 알려준다. 이게 Windows의 UX다.

당신이 이 글을 찾았다면

바로 되면 좋겠지만, 여러 번 시도하다 온 사람이라면 보류 작업이 쌓여있을 수 있다. 먼저 청소:

# 가볍게
dism /online /cleanup-image /revertpendingactions
# → 재부팅 → 위의 두 줄 실행

# 그래도 안 되면 (인플레이스 설치)
# 24H2 ISO의 setup.exe → "개인 파일 및 앱 유지"
# → 재부팅 → 위의 두 줄 실행

전체 해결 플로우

처음부터 하는 분들을 위한 정리:

1. BIOS에서 가상화 기술 활성화
   HP 노트북: F10 → Security 또는 Configuration → VT-x 활성화

2. Hyper-V + WSL 활성화 (이건 잘 됨)
   dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart

3. 보류 작업 정리 (이미 삽질한 경우)
   dism /online /cleanup-image /revertpendingactions → 재부팅

4. VirtualMachinePlatform 우회 활성화 (이 글의 핵심)
   Add-WindowsCapability -Online -Name "Microsoft.Windows.HyperV.VirtualMachinePlatform~~~~0.0.1.0"
   dism /online /enable-feature /featurename:VirtualMachinePlatform /all /LimitAccess

5. 재부팅 → WSL2 설치
   wsl --install -d Ubuntu-24.04

당신의 문제가 이 문제인지 확인하는 법

# DISM 로그에서 버전 확인
Get-Content C:\Windows\Logs\DISM\dism.log -Tail 100
# "버전:"과 "이미지 버전:"이 다르면 → 이 문제

# CBS 로그에서 실패 원인
Select-String -Path C:\Windows\Logs\CBS\CBS.log `
  -Pattern "Error|Failed|0x800f" -Context 2 | Select-Object -Last 20
# "CBS_E_CANCEL"이 보이면 → 이 문제

# CPU 가상화 지원 확인 (기본 전제)
Get-CimInstance -ClassName Win32_Processor | 
  Select-Object VirtualizationFirmwareEnabled, VMMonitorModeExtensions

요약

증상VirtualMachinePlatform 활성화가 37.8%에서 무한 멈춤
근본 원인25H2 OS(26200)와 24H2 서비싱 스택(26100)의 버전 불일치
해결Add-WindowsCapability로 우회 설치 → dism /LimitAccess로 활성화
선행 조건보류 작업 정리
비용일주일의 저녁 시간, BlueStacks 억울한 삭제 1건, 37.8이라는 숫자에 대한 트라우마

교훈

  1. 로그를 먼저 읽어라. “될 때까지 다른 거 시도”는 시간 낭비의 지름길이다.
  2. Windows Insider는 각오하고 써라. 25H2는 프리뷰 빌드다. 서비싱 스택이 따라오지 못하는 문제가 있다.
  3. 같은 건물에도 문이 여러 개다. DISM이 안 되면 Add-WindowsCapability가 있다. 공식 문서에는 안 써있지만.
  4. AI한테 로그를 던져라. 사람 눈으로 CBS 로그 16만 줄을 읽는 건 고문이다.

이 트러블슈팅은 Claude Code와 함께 진행했습니다. AI가 16만 줄짜리 CBS 로그에서 핵심 6줄을 뽑아줬고, “Add-WindowsCapability라는 뒷문이 있다”는 아이디어를 같이 도출했습니다. 혼자였으면 일주일이 아니라 포맷했을 겁니다.