golangの日記

Go言語を中心にプログラミングについてのブログ

WSL2の導入

default-gray.png


窓の杜の記事 「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つで解決する

  1. BIOS で 「Intel VT」 または 「Virtualization Technology」が「Enabled」になっていることを確認
  2. コントロールパネルの「プログラムと機能」「Windowsの機能の有効化または無効化」から「仮想マシンプラットフォーム」にチェックをつける
  3. 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の機能の有効化または無効化」

->

「仮想マシンプラットフォーム」のチェックを外して再起動する