WSL2の設定後、VMWareが使えなくなった時には

WSL2を使えるように設定すると、VMWare Workstation Playerのインスタンスが起動できなくなることがあります。ハードウェアの要件で、Intel Ivy Bridge(第3世代)含め、以前の古いCPUだと、Hyper-Vが有効な状態でVMWare仮想環境が共存できないことが原因のようです。
このような現象に遭遇した場合に、Hyper-V有効/無効の両環境を切り変えて使えるようにする方法を紹介します。

Hyper-Vを無効にするには

コマンドプロンプトを管理者として実行します。
「bcdedit」コマンドを実行して、現在の状態を確認します。下図の最終行で、「hypervisorlaunchtype」が「auto」になっていることがわかります。これを「OFF」に変更します。

>bcdedit /enum {current}

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 11
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {20534ba7-7cc1-11ec-90f7-9cd9120e3379}
displaymessageoverride  Recovery
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {20534ba5-7cc1-11ec-90f7-9cd9120e3379}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto

下記の通り実行します。

>bcdedit /set hypervisorlaunchtype off
この操作を正しく終了しました。

再起動後、下の通り、VMWareから起動できるようになりました。

この状態では、VMWareのインスタンスが起動できる代わりに、下図のようにWSL2を起動すると失敗するようになります。

Hyper-Vを有効にするには

管理者モードのコマンドラインから「bcdedit」コマンドを下のように実行します。
実行後、「bcdedit /enum {current}」の実行結果から、「hypervisorlaunchtype」が「Auto」に戻っていることが確認できます。

>bcdedit /set hypervisorlaunchtype auto
この操作を正しく終了しました。

>bcdedit /enum {current}

Windows ブート ローダー
--------------------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 11
locale                  ja-JP
inherit                 {bootloadersettings}
recoverysequence        {20534ba7-7cc1-11ec-90f7-9cd9120e3379}
displaymessageoverride  Recovery
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {20534ba5-7cc1-11ec-90f7-9cd9120e3379}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto

再び再起動を行うと、WSL2が起動できるようになっています。

さいごに

それにしても、ここで紹介した手順は面倒です。
ちなみに、VirtualBoxはこのような手順を踏まなくても問題なく動作しました。
そもそも、古いマシンでハイパーバイザ型の仮想環境を使うこと自体が非効率なので、このような問題に遭遇することがレアケースなのかもしれません。