WSL2の導入
窓の杜の記事 「WSL 2」が「Windows 10 バージョン 1903/1909」でも利用可能に ~Microsoftが旧OSに移植 で Windows10 の更新プログラム「KB4566116」に更新すると WSL2 が使用可能ということで、さっそくWindowsをアップデートしてWSL2を入れてみた(VMWareを使っていたので罠にハマる)
目次
Windowsの更新
Windows Update で「Windows 10 Version 1909 の累積更新プログラム(KB4566116)」にアップデート
WSL2 にする
WSL2 に設定する
PS> wsl --set-default-version 2
エラーになる場合は以下の3つで解決する
- BIOS で 「Intel VT」 または 「Virtualization Technology」が「Enabled」になっていることを確認
- コントロールパネルの「プログラムと機能」「Windowsの機能の有効化または無効化」から「仮想マシンプラットフォーム」にチェックをつける
- WSL 2 Linuxカーネルの更新からダウンロードしてカーネルを更新する
確認
PS> wsl --list --verbose NAME STATE VERSION * Ubuntu Stopped 2
罠にハマる
無事 WSL2 は使用できるようになったものの VMWare を起動しようとすると以下のエラーになる
Hyper-V または Device/Credential Guard が有効な状態で VMware Player を実行するのに必要な最小要件をホストが満たしていません。詳細については、https://kb.vmware.com/kb/76918 で VMware ナレッジベースの記事 KB76918 を参照してください。
調べると、どうやら Hyper-V (WSL2) と VMWare は共存できないらしく、これを解決するには Hyper-V を無効化するか VMWare を諦めるかという本末転倒なことになる(ちなみにVirtualBoxは使える)
解決策として大型アップデート「Windows 10 May 2020 Update(バージョン 2004)」に更新することで Hyper-V と VMWare が共存可能になるとのこと。 今まで Legacy な WSL を使っていて、それをアンインストールして lxss 以下もすべて削除してしまって後戻りする選択肢はないので更新するしかない。
そもそも「Windows 10 May 2020 Update(バージョン 2004)」に更新すると WSL2 が使えるようになるわけだから
「KB4566116」に更新すると「WSL2」が使える!やったぜ!
とか関係なくなってしまうわけで、最初から WSL2 使うなら「Windows 10 May 2020 Update(バージョン 2004)」に更新すればよかった話だった。
更新手順は Windows 10 May 2020 Update(バージョン 2004) から[今すぐアップデート]をクリックして Windows10Upgrade9252.exe
をダウンロードして実行するだけ、全部で小一時間ほどかかった。
Windows Terminal の設定
Legacy から変更した場合は Windows Terminal の settings.json に代わりに以下のように設定すると開けるようになる
{ "guid": "{2c4de342-38b7-51cf-b940-2309a097f518}", "hidden": false, "name": "Ubuntu", "source": "Windows.Terminal.Wsl", "commandline": "wsl.exe ~ -d Ubuntu" },
※重要な追記(2020年9月現在)
Windows 10 May 2020 Update(バージョン 2004)にアップデートしても VMWare は併用できるようになりますが Virtualbox は ioエラーが出るようになりました。ですので WSL2 は使わないことにしました。
WSL2(Hyper-V)の無効化
「コントロールパネル」
->
「プログラムと機能」
->
「Windowsの機能の有効化または無効化」
->
「仮想マシンプラットフォーム」のチェックを外して再起動する