Windows 10の9回目の大型アップデート「May 2020 Update」でようやくWSL2が使えるようになりました。
以下はWSL2の導入、及びWSLをWSL2に切り替える手順です。
⚠︎注意
「Windows 10 May 2020 Update」でブルースクリーン発生やBluetooth、IMEの不具合
のような不具合も出ています。作業を行う際はバックアップをきっちり取った方が良いです。
また、この記事を参考にしたことにより生じたあらゆる損害について筆者は一切の責任を負いません。
前提
- Windows 10 Pro(多分Homeでも動くが手順は違うと思う)
Windows 10 May 2020 Update の適用
「Windows 10 May 2020 Update」2004(Build 19041)
が適用済みでない場合
Windows Updateが降ってくるのを待つでも良いですが以下からUpdateが可能です。
https://www.microsoft.com/en-us/software-download/windows10
Hyper-Vを無効化する
WSLではHyper-Vが必須でしたが、WSL2では不要になりました。
Docker for WindowsがWSL2を使用することでHyper-Vが不要になりました。
Hyper-Vを有効化しておくことでgRPCのport 50051などHyper-Vが予約しているポートとバッティングしているポートを使用しようとする場合などで困ることになるので必要なければ無効化しておいた方がよさそうです。
Powershellを管理者権限で立ち上げ以下を実行します。
Disable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V")
VirtualMachinePlatformとWSLを有効化する
Powershellを管理者権限で立ち上げ以下を実行します。
Enable-WindowsOptionalFeature -Online -FeatureName $("VirtualMachinePlatform", "Microsoft-Windows-Subsystem-Linux")
WSL2 Linux カーネル更新プログラム パッケージのインストール
以下から「WSL2 Linux カーネル更新プログラム パッケージ」をダウンロードしてきてインストールします。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel
(既にWSLが入ってる場合)ディストリビューションの更新
WSLを既に使用してる場合はディストリビューションの更新が必要です。
Powershell を管理者権限で立ち上げて以下を実行します。
- WSLのディストリビューションを検索
wsl -l -v
# NAME STATE VERSION
#* Ubuntu-18.04 Running 1
- バージョンを2に上げたいディストリビューションを更新
wsl --set-version Ubuntu-18.04 2
更新までしばらく時間がかかります。
- ディストリビューションのバージョンが「2」に上がったことを確認
wsl -l -v
# NAME STATE VERSION
#* Ubuntu-18.04 Running 2
(おまけ) Docker for Windowsの設定変更
- WSL 2 based engine を有効化
- WSL INTEGRATION を有効化
以上で元々Docker for Windowsで動いていたDockerコンテナのWSL2での起動までは確認できました。