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の機能の有効化または無効化」のウィンドウから、「Linux用Windowsサブシステム」*1の機能を選択します。
「Linux用Windowsサブシステム」の導入直後では、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 を参照してください
また、WSL2を有効にするのとは別に、Hyper-Vを有効にする必要があります。
> wsl --set-version Ubuntu-18.04 2 Windows の仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっていることを確認してください。 詳細については、https://aka.ms/wsl2-install を参照してください
「Windows の仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっていることを確認してください。」というエラーメッセージが表示される場合は、BIOSもしくはUEFIのメニューで仮想化機能が有効になっていることを確認します。(画像はThinkpad X230のメニュー画像)
続いて、「Windowsの機能の有効化または無効化」で「Hyper-V」を有効にして再起動します。
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ディストリビューションのファイルシステムにアクセスすることができます。
WSL2を導入することで、Docker DesktopのWSL2 Windows Featureを使用可能になります。続きは「docker desktop WSL2 Windows feature ファーストインプレッション - bluebird」のエントリーをご参照ください。