DockerとWSLが使えなくなった?
私は以前からWindows環境でDockerやWSLを使っていたのだが、久々に使おうと思ったら、両方とも起動時にエラーが発生して使えなくなっていた。
以下がDockerを起動しようとしたときのエラー。
An unexpected error occurred Hardware assisted virtualization and data execution protection must be enabled in the BIOS.
以下がWSLを起動しようとしたときのエラー。
WSL2 は、現在のマシン構成ではサポートされていません。 "仮想マシン プラットフォーム" オプション コンポーネントを有効にし、BIOS で仮想化が有効になっていることを確認してください。 詳細については、https://aka.ms/enablevirtualization をご覧ください
BIOSの設定を確認したが、以前以下の記事で書いた設定(Vitualization Technologyの設定をEnabledに変更)のままになっており、特に問題なさそう。
ネットで調べてたら解決法を見つけたのでメモっておく。ちなみにDockerやWSLのインストール手順は以下の記事で書いている。
Windows上にWSL( Linux 用 Windows サブシステム)をインストールして任意のDistributionを動かす
実行環境
Windows 10
Windowsブートローダーのhpyervisorlaunchtypeの設定を変更
調べてみると以下のページを発見。今年になってwslが使えなくなった人が他にもいるようだ。
https://github.com/microsoft/WSL/issues/10076
どうもHyper-Vがオフになっていると起こるらしい。今の状態を調べるためPowerShellを開いて
bcdedit
を実行してBCD(ブート構成データ)の設定を確認してみると、hpyervisorlaunchtypeがoffになっている。(画像の下から2番目の行)
これを
bcdedit /set hypervisorlaunchtype auto
でautoに設定してPCを再起動したところ、無事にDockerもWSLも起動できるようになった。何がきっかけで起動できなくなったのかはよくわからないが、ひとまずエラーは解消したので良かった。