Windows11でVirtual Machine Platformが14.6%/37.6%で止まる時の直し方|WSL2・Hyper‑V競合の徹底対策

WSL の Ubuntu を起動しようとしたら「Virtual Machine Platform を有効にせよ」と促され、機能をオンにしても 14.6%/37.6% でピタッと止まる――。この現象は、直前に入れた Android エミュレーターなど別ハイパーバイザーの競合で発生することが非常に多く、加えて UEFI の仮想化無効化や更新コンポーネント不整合がからんでいます。この記事では“最短で直す手順”と“根本原因の切り分け”を、実務で使える具体策だけに絞って解説します。

目次

症状の整理:Virtual Machine Platform が 14.6%/37.6% で停止する

Windows 11 で「Windows の機能」から Virtual Machine Platform(VMP) を有効化すると、進行状況バーが 14.6% あるいは 37.6% 付近で固定化し、そのまま完了しない(長時間待っても変化しない)というものです。WSL2 は VMP に依存するため、VMP をオンにできないと Ubuntu などのディストリビューションが起動できません。

結論の先出し:原因の本命はハイパーバイザー競合

  • BlueStacks、Nox、MEmu、LDPlayer などの Android エミュレーター、あるいは一部の仮想化ソフトが 独自ハイパーバイザー やカーネルドライバーをインストールし、Hyper‑V/VMP の有効化を妨げる。
  • UEFI(BIOS)側で Intel VT‑x/AMD‑V(SVM)、VT‑d/IOMMU が無効だと、VMP が起動できず途中で失敗する。
  • 更新系の不整合(WSUS 環境のポリシー、コンポーネント ストアの破損、保留中操作の詰まり)でも同様の停止を引き起こす。

最短復旧のチェックリスト(すぐ試すべき順)

  1. エミュレーターを停止・アンインストール(後述の「競合ソフトの完全停止」を参照)。
  2. Windows Update を最新にして再起動。
  3. UEFI で仮想化支援を有効化(VT‑x/SVM、VT‑d/IOMMU)。
  4. SFC と DISMで整合性修復: sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth
  5. VMP を再有効化(設定 > アプリ > オプション機能 > その他の Windows 機能)。
  6. ダメなら VMP をコマンドで有効化: DISM /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /NoRestart
  7. ブートローダーで Hyper‑V の起動可否を確認: bcdedit /enum {current} bcdedit /set hypervisorlaunchtype auto
  8. 企業ネットワークなら WSUS/ポリシーの影響を確認(オフライン機能有効化の許可)。

原因と対処を体系化して理解する

競合ソフトの完全停止・アンインストール

エミュレーターや旧版の仮想化ソフトは、Hyper‑V 非互換ドライバーや ハードウェア仮想化の専有を行います。まずは終了 → サービス停止 → アンインストール → ドライバーの残滓除去まで実施します。

よく競合するコンポーネント例と対処

ソフト/ドライバー主な痕跡(デバイス マネージャー/サービス)推奨対処
BlueStacks 旧エンジンBstHdDrv 系、BlueStacks Hyper‑V Driversアプリ終了→アンインストール。最新版のHyper‑V 対応エンジンに切替を検討。
Nox / MEmu / 旧 LDPlayer仮想 NIC・キーボード、独自仮想 CPU ドライバーアンインストール。Hyper‑V 互換版があれば切替。
Intel HAXM(古い Android SDK)「Intel(R) HAXM」ドライバーアプリとともに削除。HAXM は Hyper‑V と併用不可。
VirtualBox 旧版VBoxDrv、VBoxNetLwf最新へ更新(Hyper‑V 互換モードあり)または一時的にアンインストール。
VMware Workstation 旧版VMware 仮想化ドライバー最新へ更新(Windows Hypervisor Platform 互換)または無効化。
一部セキュリティ製品仮想化分離・自己防御ドライバー最新版へ更新。問題切り分けのため一時的に無効化。

競合の有無はコマンドでも概観できます(管理者 PowerShell):

driverquery /v /fo table | findstr /i "haxm bst vbox vmware ldplayer memu nox"
Get-Service | Where-Object {$_.DisplayName -match "Hyper-V|vmcompute|Lxss|BlueStacks|VBox|VMware"} | Format-Table -AutoSize

UEFI(BIOS)でハードウェア仮想化を有効にする

VMP は CPU の仮想化支援が前提です。下記の項目が Enabled であることを確認します。

  • Intel:VT‑x、VT‑d
  • AMD:SVM(AMD‑V)、IOMMU

Windows からは Shift + 再起動 → 「トラブルシューティング」→「詳細オプション」→「UEFI ファームウェア設定」で UEFI 画面に入るのが手早いです。各ベンダーにおける表記ゆれの例を下表に整理します。

メーカー例設定の呼称メモ
ASUS / ROGIntel Virtualization Tech, SVM Mode, IOMMUAdvanced > CPU Configuration / NB Configuration
MSISVM Mode, IOMMU, Intel VT‑dOC / Settings > Advanced
GIGABYTEIntel Virtualization, SVM, IOMMU ControllerTweaker / Chipset
Dell / LenovoVirtualization, VT‑d, AMD‑V, I/O VirtualizationSecurity / Virtualization

システム整合性の修復(SFC/DISM)

VMP の有効化は「コンポーネント ストア(WinSxS)」の健全性に依存します。次の順で実行し、再起動します。

sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
DISM /Online /Cleanup-Image /AnalyzeComponentStore

/AnalyzeComponentStore でクリーンアップ推奨が出る場合は、次を加えます(元に戻せないため企業端末では要判断)。

DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase

グループポリシー/WSUS 環境の確認

企業ネットワークでは「Windows の機能のソース」を WSUS に固定しているケースがあります。VMP のペイロード取得ができず 0x800f0954 / 0x800f0831 を誘発し、進捗が停滞することがあります。ローカルグループポリシーエディターで次を確認・設定します。

  • コンピューターの構成 > 管理用テンプレート > システム > オプション機能のインストールとコンポーネント修復の設定
  • 「Windows Update から修復コンテンツとオプション機能を直接ダウンロードする」を 有効 にする。

併せて Windows Update コンポーネントをリセットすると成功率が上がります(管理者 PowerShell)。

net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
net start msiserver
net start bits
net start cryptSvc
net start wuauserv

VMP の有効化を GUI とコマンドの両面から試す

  • GUI:設定 > アプリ > オプション機能 > その他の Windows 機能 → Virtual Machine Platform にチェック → 再起動。
  • DISM(推奨):DISM /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /NoRestart → 再起動。
  • PowerShell:Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -All -NoRestart

Hyper‑V 起動設定(bcdedit)の確認

エミュレーターの一部は、互換性確保のため hypervisorlaunchtype を Off に変更します。VMP は Hyper‑V ハイパーバイザーの起動が前提なので、次で Auto に戻します。

bcdedit /enum {current} | findstr /i hypervisorlaunchtype
bcdedit /set hypervisorlaunchtype auto

保留中操作の解除(進捗が毎回 14.6%/37.6% で固まる場合)

更新や機能変更の「保留中操作」が詰まっていると、どれだけ待っても進みません。回復環境(WinRE)から 保留中操作の巻き戻しを行います。

  1. 設定 > システム > 回復 > 「今すぐ再起動」で回復環境へ。
  2. トラブルシューティング > 詳細オプション > コマンド プロンプト。
  3. Windows が入っているドライブを確認(例:C:)。
  4. 次を実行: DISM /Image:C:\ /Cleanup-Image /RevertPendingActions
  5. 再起動後、SFC/DISM を再実行 → VMP を有効化。

クリーンブートでの再試行

常駐サービスがインストール処理をフックしている可能性に備え、システム構成(msconfig)から「サービスの隠し表示 → Microsoft 以外をすべて無効化」「スタートアップをタスクマネージャーで無効化」として再起動し、VMP 有効化を再試行します。

最終手段:インプレース修復(上書き)

OS のシステムファイルに深刻な破損がある場合は、Windows 11 のセットアップを実行して「個人用ファイルとアプリを引き継ぐ」を選び、インプレース修復を行うのが確実です。これでコンポーネント ストアが正常化し、VMP の有効化が通るケースがあります。

WSL を“安全に”再構築する(やり直しの近道)

Windows 11 22H2 以降では、次のコマンドで依存関係が自動処理されます。VMP/Hyper‑V/WHP の整合性もセットで直るため、クリーンに再構築したいときに有効です。

wsl --install -d Ubuntu
wsl --update
wsl --set-default-version 2
wsl --status

作業を止めたくない場合は、暫定的に WSL1 で回避する手もあります(VMP 不要)。

wsl --set-default-version 1
wsl --set-version <配布名> 1

検証コマンドと期待される状態

目的コマンド期待される結果
UEFI で仮想化が有効かsysteminfo「Virtualization Enabled In Firmware:Yes」
VMP の状態DISM /Online /Get-FeatureInfo /FeatureName:VirtualMachinePlatformState:Enabled
Hyper‑V 起動設定bcdedit /enum {current}hypervisorlaunchtype Auto
WSL サービスsc query vmcompute、sc query LxssManagerSTATE:RUNNING
WSL の全体状態wsl --statusデフォルト バージョン:2、カーネル最新

具体的な入力手順(コピペ用)

以下を管理者 PowerShell で上から順に実行すると、よくあるつまずきを網羅的に回避できます。

:: 1) システム整合性の修復
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

:: 2) Hyper‑V の起動を許可
bcdedit /set hypervisorlaunchtype auto

:: 3) Windows Update コンポーネントのリセット
net stop wuauserv & net stop cryptSvc & net stop bits & net stop msiserver
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
net start msiserver & net start bits & net start cryptSvc & net start wuauserv

:: 4) VMP を有効化
DISM /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /NoRestart

:: 5) 再起動必須
shutdown /r /t 5

エラーコード別の対処早見表

症状/コード想定原因対処
14.6%/37.6% 固定、無反応エミュレーター競合、保留中操作の詰まり競合アンインストール、WinRE で /RevertPendingActions、クリーンブート
0x800f0954WSUS 経由でペイロード取得不可ポリシーで「Windows Update から直接取得」を有効化、ネットワーク切替
0x800f0831依存パッケージ不足/更新の欠落Windows Update の適用、インプレース修復
0x800f0922更新失敗(接続/予約領域不足 など)Update リセット、再起動、不要機能オフ、ストレージ空き確保

Android エミュレーターと WSL を“両立”させるコツ

  • Hyper‑V 互換モードを備える版を選ぶ(BlueStacks 新エンジンや LDPlayer Hyper‑V 版など)。
  • エミュレーター側で Hyper‑V エンジンを明示的に選択する設定がある場合はそれを使用。
  • HAXM ベースの旧構成は切り捨てる(WSL2 と両立しない)。
  • パフォーマンスが落ちる場合は、コア数/メモリ割り当てを見直し、WSL とエミュレーターで競合しないようにする。

再発防止:環境づくりのベストプラクティス

  1. UEFI の仮想化支援を常時有効にしておく(BIOS アップデート時に戻る場合があるため定期点検)。
  2. エミュレーターは Hyper‑V 互換版を選定。併用要件を事前に確認する。
  3. WSL はコマンド一括導入(wsl --install)で依存関係を解決してから使い始める。
  4. 大規模更新(機能更新)前に SFC/DISM を実行し、コンポーネント ストアを健全化。
  5. 企業端末では WSUS/ポリシーの 「機能のソース取得」設定を台帳管理する。

原因切り分けフロー(テキスト版)

[1] UEFI で VT‑x/SVM, VT‑d/IOMMU が Enabled?
  └─ No: 有効化して再試行
[2] エミュレーターや旧仮想化ソフトの痕跡あり?
  ├─ Yes: 完全アンインストール → 再起動
  └─ No : [3] へ
[3] SFC/DISM で破損なし?
  ├─ No : 修復 → 更新適用 → 再起動
  └─ Yes: [4] へ
[4] WSUS/ポリシーが妨げていない?
  ├─ No : 直接取得を許可 → Update リセット
  └─ Yes: [5] へ
[5] bcdedit の hypervisorlaunchtype は Auto?
  ├─ No : Auto に設定
  └─ Yes: WinRE で RevertPendingActions → クリーンブート → 再試行

WSL が起動するまでの最終確認

  1. VMP 有効化後に 必ず再起動(高速スタートアップをオフにして完全再起動すると確実)。
  2. wsl --status で「既定バージョン:2」「カーネル:最新」を確認。
  3. ubuntu を起動し、初期設定が完了するかを確認。
  4. 失敗するなら C:\Windows\Logs\CBS\CBS.log および C:\Windows\Logs\DISM\dism.log を確認し、直近のエラー行を起点に再度対処。

補足:Windows 11 Home と Pro での違い

Windows 11 Home でも Virtual Machine Platform と WSL は使用できます(Hyper‑V フル機能の管理ツール群は Pro 以上)。Home で VMP が有効化できない場合も、手順は本記事と同じです。

FAQ(よくある質問)

Q. VirtualBox/VMware は WSL2 と共存できますか?
A. 最新版は Hyper‑V 互換モードを備えるため、原則共存できます。ただし性能が落ちることがあり、用途に応じて切り替えが必要です。

Q. 「コア分離(メモリ整合性)」はオフにすべき?
A. これはセキュリティ機能で、WSL2/VMP にとっては妨げではありません。互換性問題がない限りオンのままを推奨します。

Q. どうして 14.6%/37.6% で止まるの?
A. 内部的には複数フェーズの有効化を行っており、仮想化ドライバーの導入/起動、保留中操作の適用などのタイミングで競合や整合性エラーが出るとそこで進行が止まります。多くはエミュレーターのドライバーまたはポリシー・更新の詰まりが原因です。

まとめ

Virtual Machine Platform が 14.6%/37.6% で止まる場合、第一に エミュレーターや旧仮想化ソフトの競合を除去、第二に UEFI での仮想化支援の有効化、第三に SFC/DISM と更新系の整流、そして bcdedit と WinRE の保留解除という順で対処するのが最短です。最後に wsl --install でクリーンに再構築すれば、WSL2 の Ubuntu は高確率で復旧します。再発防止には Hyper‑V 互換のエミュレーター選定と、定期的な整合性チェックが有効です。この記事の手順を上から順に実施すれば、多くの環境でつまずきは解消できます。


参考:この記事の手順を 1 枚に凝縮(印刷向け)

  • 競合ソフト停止・アンインストール → 再起動
  • Windows Update 全適用 → 再起動
  • UEFI:VT‑x/SVM, VT‑d/IOMMU を Enabled
  • SFC/DISM で整合性修復
  • VMP を DISM で有効化(/NoRestart)→ 再起動
  • bcdedit で hypervisorlaunchtype auto を確認
  • WSUS/ポリシーの影響を除去(必要時)
  • WinRE で /RevertPendingActions(必要時)
  • wsl --install で再構築 → wsl --status で検証

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次