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 環境のポリシー、コンポーネント ストアの破損、保留中操作の詰まり)でも同様の停止を引き起こす。
最短復旧のチェックリスト(すぐ試すべき順)
- エミュレーターを停止・アンインストール(後述の「競合ソフトの完全停止」を参照)。
- Windows Update を最新にして再起動。
- UEFI で仮想化支援を有効化(VT‑x/SVM、VT‑d/IOMMU)。
- SFC と DISMで整合性修復:
sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth - VMP を再有効化(設定 > アプリ > オプション機能 > その他の Windows 機能)。
- ダメなら VMP をコマンドで有効化:
DISM /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /NoRestart - ブートローダーで Hyper‑V の起動可否を確認:
bcdedit /enum {current} bcdedit /set hypervisorlaunchtype auto - 企業ネットワークなら 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 / ROG | Intel Virtualization Tech, SVM Mode, IOMMU | Advanced > CPU Configuration / NB Configuration |
| MSI | SVM Mode, IOMMU, Intel VT‑d | OC / Settings > Advanced |
| GIGABYTE | Intel Virtualization, SVM, IOMMU Controller | Tweaker / Chipset |
| Dell / Lenovo | Virtualization, VT‑d, AMD‑V, I/O Virtualization | Security / 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)から 保留中操作の巻き戻しを行います。
- 設定 > システム > 回復 > 「今すぐ再起動」で回復環境へ。
- トラブルシューティング > 詳細オプション > コマンド プロンプト。
- Windows が入っているドライブを確認(例:
C:)。 - 次を実行:
DISM /Image:C:\ /Cleanup-Image /RevertPendingActions - 再起動後、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:VirtualMachinePlatform | State:Enabled |
| Hyper‑V 起動設定 | bcdedit /enum {current} | hypervisorlaunchtype Auto |
| WSL サービス | sc query vmcompute、sc query LxssManager | STATE: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、クリーンブート |
| 0x800f0954 | WSUS 経由でペイロード取得不可 | ポリシーで「Windows Update から直接取得」を有効化、ネットワーク切替 |
| 0x800f0831 | 依存パッケージ不足/更新の欠落 | Windows Update の適用、インプレース修復 |
| 0x800f0922 | 更新失敗(接続/予約領域不足 など) | Update リセット、再起動、不要機能オフ、ストレージ空き確保 |
Android エミュレーターと WSL を“両立”させるコツ
- Hyper‑V 互換モードを備える版を選ぶ(BlueStacks 新エンジンや LDPlayer Hyper‑V 版など)。
- エミュレーター側で Hyper‑V エンジンを明示的に選択する設定がある場合はそれを使用。
- HAXM ベースの旧構成は切り捨てる(WSL2 と両立しない)。
- パフォーマンスが落ちる場合は、コア数/メモリ割り当てを見直し、WSL とエミュレーターで競合しないようにする。
再発防止:環境づくりのベストプラクティス
- UEFI の仮想化支援を常時有効にしておく(BIOS アップデート時に戻る場合があるため定期点検)。
- エミュレーターは Hyper‑V 互換版を選定。併用要件を事前に確認する。
- WSL はコマンド一括導入(
wsl --install)で依存関係を解決してから使い始める。 - 大規模更新(機能更新)前に SFC/DISM を実行し、コンポーネント ストアを健全化。
- 企業端末では 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 が起動するまでの最終確認
- VMP 有効化後に 必ず再起動(高速スタートアップをオフにして完全再起動すると確実)。
wsl --statusで「既定バージョン:2」「カーネル:最新」を確認。ubuntuを起動し、初期設定が完了するかを確認。- 失敗するなら
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で検証

コメント