Windows10 version 2004 (May 2020 Update)でWSL2を有効にする

Visual Studio サブスクリプションでダウンロード可能になったWindows10 version 2004 (May 2020 Update)でWSL(Windows Subsystem for Linux)2を有効化する方法についてまとめたメモです。

なお、WSL2についてはリリース間際でWSL2のLinuxカーネルがWindows Update経由で提供されるようになる仕様変更があったため、Insider Previewの環境とはメニュー表示・挙動が異なる場合があることをご承知おき下さい。

動作を確認したバージョンはWindows10 Professionalバージョン2004(ビルド 19041.264)です。

WSLの機能を有効にするには、管理者権限でPowerShellのプロンプトを開き、以下のコマンドを実行します。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

GUIからは、「Windowsの機能の有効化または無効化」のウィンドウから、「LinuxWindowsサブシステム」*1の機能を選択します。

f:id:setoazusa:20200518230905p:plain

LinuxWindowsサブシステム」の導入直後では、WSL1がデフォルトのサブシステムとして選択されるようになっています。

>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         1
  Ubuntu          Stopped         1

WSL1の仮想マシン(ディストリビューション)をWSL2に変換するには、wsl --set-version (仮想マシン名) 2を実行します。

実行時に「WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。」というメッセージが表示される場合は、メッセージ出力に従い、WSL 2 Linux カーネルの更新のサイトから、x64 マシン用の最新の WSL2 Linux カーネル更新プログラム パッケージをダウンロードし、インストールします。

>wsl --set-version Ubuntu-18.04 2
変換中です。この処理には数分かかることがあります...
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください

docs.microsoft.com

また、WSL2を有効にするのとは別に、Hyper-Vを有効にする必要があります。

> wsl --set-version Ubuntu-18.04 2
Windows の仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっていることを確認してください。
詳細については、https://aka.ms/wsl2-install を参照してください

Windows仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっていることを確認してください。」というエラーメッセージが表示される場合は、BIOSもしくはUEFIのメニューで仮想化機能が有効になっていることを確認します。(画像はThinkpad X230のメニュー画像)

f:id:setoazusa:20200518225418j:plain

続いて、「Windowsの機能の有効化または無効化」で「Hyper-V」を有効にして再起動します。

f:id:setoazusa:20200518231618p:plain

wsl --set-versionコマンドを実行してWSLのディストリビューションがWSL2に変換されたことを確認するにはwsl -l -vコマンドのVERSION欄の出力を確認します。

>wsl --set-version Ubuntu-18.04 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         2
  Ubuntu          Installing      2

WSLでのデフォルトのサブシステムをWSL2にするには wsl --set-default-version 2 を実行します。

>wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

なお、WindowsのファイルエクスプローラーからWSLディストリビューションにアクセスする機能は、新機能が最も早期にリリースされるファストリング向けの機能なので、提供されるのは、バージョン2004の次のリリースからになります。現状では、WSLディストリビューションのシェルから explorer.exe . とタイプすることで、WSLディストリビューションファイルシステムにアクセスすることができます。

f:id:setoazusa:20200519102700p:plain

WSL2を導入することで、Docker DesktopのWSL2 Windows Featureを使用可能になります。続きは「docker desktop WSL2 Windows feature ファーストインプレッション - bluebird」のエントリーをご参照ください。

blog.fieldnotes.jp

*1:以前は「Windows Subsystem for Linux」という表記でした