概要
WSL2を使用した状態でVT-x機能を使用した仮想マシンを起動するとVT-xが使用できないと警告が表示される。
無視してVMを起動することもできるが、VT-x機能は使用できないままとなる。
これらWSLと仮想マシンのVT-x機能を共存させるための手法のまとめ。
問題となっている事象
VMware Playerで作成した仮想マシン内で仮想化機能を使用するため、VT-xオプションを有効化して作成。
Localでの作業のため、WSL2をインストール。
この状態で仮想マシンを起動するとVMware Playerで以下の警告がでてVT-x機能が使えない。
仮想 Intel VT-x/EPT はこのプラットフォームではサポートされていません。
仮想化された Intel VT-x/EPT を使用せずに続行しますか。
仮想マシンのVT-xが機能しない理由
仮想マシンのVT-xが機能しないのは、Hyper-Vが起動していてVT-xが占有され仮想マシン側で使用できなくなっているため。
これを解決するには以下のコマンドを実行すればいい。
bcdedit /set hypervisorlaunchtype off
WSLが起動しない理由
Hyper-Vを無効化した状態でWSLを起動すると以下の警告がでてWSL2が起動しない。
これはWSL2がHyper-Vに依存関係にあり、Hyper-Vが無効になっていると正常に動作しないことが原因。
WSL2 は、現在のマシン構成ではサポートされていません。
エラー コード: Wsl/Service/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
WSLと仮想マシンのVT-x機能の共存
WSL2にはHyper-Vが起動している必要があり、Hyper-Vが起動していると仮想マシンのVT-x機能が使用できない。
これらの問題はHyper-V上で動作するWSL2ではなく、WSL1を使用することで共存をさせることができる。
Linuxに依存する一部のツールが使用できなくなるが、今回は仮想マシンでVT-x機能を使用できるようにすることを優先する。
どうしてもWSL2を使用する必要がある場合は、VMware PlayerやVirtualBoxなどのサードパーティーの仮想化ソフトではなくHyper-Vを使用して仮想マシンを構築すればよい。
共存させるための手順
1. 一時的にHyper-Vを有効化
bcdedit /set hypervisorlaunchtype auto
2. PC再起動
一度PCの再起動を実施 (Hyper-VのOn/Offの反映に必要)
3. WSL2をWSL1に変更
- WSLのディストリビューションリストとバージョンを確認
wsl -l -v
- 使用するものをバージョン1に変更
wsl --set-version [ディストリビューション名] 1
4. Hyper-Vの無効化
bcdedit /set hypervisorlaunchtype off
2. PC再起動
一度PCの再起動を実施 (Hyper-VのOn/Offの反映に必要)