40コア/80スレッドのXeon上でWSLを動かそうとすると以下のエラーが発生した。
Wsl/Service/CreateInstance/CreateVm/HCS/E_INVALIDARG
解決方法
「C:\Users\[自分のユーザーフォルダ]\.wslconfig」を作成後、以下の文字列を貼り付け。
※自分のPCのスペックに合わせて「processors」の値は変えてください。
[wsl2]
processors=64
その後、管理者でPowerShellを開き
wsl --shutdown
を実行 → その後、任意のLinuxを起動。
なぜこれで直るのか?
個人的な意見だが、コア/スレッド数が多いCPUだとうまくWSLが認識してくれないのだと思われる。
そのため、明示的に指定することによって動作するのだと思われる。
直らなかった場合
それでもダメなら .wslconfig の processors をさらに下げてみる(例:64→48→32)
それでもだめだった場合は、続きを読んでください。
確認すべき設定項目
Windowsの機能の有効化で必要な機能にチェックが入っているか?
- Hyper-V
- Linux用Windowsサブシステム
- 仮想マシン プラットフォーム
上記の3つにチェックが入っていない場合は、チェック→OKをクリックしましょう。
BIOS上でVT-XがONになっているか?
この機能がOFFだと、Windows上でいくら設定を変えても動きません。
メーカーのホームページを参考に設定してください。
大体は、BIOS Setup画面から設定できます。
WSL/カーネルの更新と状態確認
PowerShell(管理者)で
wsl --status
wsl --update
wsl --set-default-version 2
wsl --shutdown
更新後に再度起動をテスト。
Hyper-V が起動する設定か
bcdedit /enum
にて hypervisorlaunchtype Auto になっているかを確認。
違う場合は
bcdedit /set hypervisorlaunchtype auto
→ 再起動。

コメント