【ワークステーション】 WSLが使えない場合の対処方法 【忘備録】

Windows

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が認識してくれないのだと思われる。

そのため、明示的に指定することによって動作するのだと思われる。

直らなかった場合

それでもダメなら .wslconfigprocessors をさらに下げてみる(例: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

→ 再起動。

コメント

タイトルとURLをコピーしました