📚

Ryzen7 5800U WindowsOS で WSL仮想化にハマった

2024/09/02に公開

購入した Ryzen7 5800U WindowsOS miniPC で仮想マシンを立ち上げようとしたときにハマったので、ほかの人のためにもまとめておく。

結論

BIOSの NX Mode を有効化する必要があった。

辿り着くまで

  1. 基本的なHyper-Vやハイパーバイザプラットフォームの有効化

  1. 仮想マシン立ち上げ時のエラー内容

    "エラー: 0x80370102 必要な機能がインストールされていないため、仮想マシンを起動できませんでした。"

https://learn.microsoft.com/en-us/windows/wsl/troubleshooting#error-0x80370102-the-virtual-machine-could-not-be-started-because-a-required-feature-is-not-installed

  1. エラー解消のために調査したこと
    • 仮想化インフラストラクチャドライバーの再install
    • hyperviserTypeの確認

https://github.com/microsoft/WSL/issues/4930

https://qiita.com/k_ide/items/3c1f049179e8c280bee1

  1. BIOSの設定を見てみることにした。
    • SVM ModeをEnableにしてみようとしたがそんな項目はなかった。
    • 設定をいろいろ見ていると、Virtulization ~ の上に NX Mode という謎の項目があった。なんとなく仮想化に関係ありそうだなと思った。調べてみるとNX Modeが無効化されていると仮想マシンがうまく動かないことがあるとわかり有効化した。すると仮想マシンが立ち上がるようになった。

BIOSをNX Modeにすることで変わったもの

coreinfoツールでCPUの仮想化状況を確認していたが、NX Mode有効化後coreinfo64 -vの実行結果が変わった。
Coreinfo - Sysinternals
coreinfoツールでCPUの仮想化対応機能をチェックする - @IT

NX Mode 有効化前

$ coreinfo64 -v
...
HYPERVISOR      -       Hypervisor is present
SVM             *       Supports AMD hardware-assisted virtualization
NP              *       Supports AMD nested page tables (SLAT)

NX Mode 有効化後

$ coreinfo64 -v
...
HYPERVISOR      *       Hypervisor is present
SVM             -       Supports AMD hardware-assisted virtualization
NP              -       Supports AMD nested page tables (SLAT)

Discussion