Windows10で WSL2を使えるようにする

Windows10でWSL2を使用できるようになりました。しかし、デフォルト設定では使用できず、いくつか設定する必要があります。

設定

CUIで設定する方法もありますが、今回はGUIで設定する方法をご紹介します。次のように遷移し2つの設定を有効にします。

コントロールパネル > プログラムと機能 > Windowsの機能の有効化または無効化
  • Linux用Windowsサブシステム
  • 仮想マシン プラットフォーム

マシンの再起動を求められるので、再起動します。

WSL有効化の確認

無事にWindowsが起動したら、確認のために次のコマンドをコマンドプロンプトで入力します。

>wsl -l -v
Linux 用 Windows サブシステムには、ディストリビューションがインストールされていません。
ディストリビューションは Microsoft Store にアクセスしてインストールすることができます:
 https://aka.ms/wslstore

上記のメッセージが出ていれば、WSLは無事に有効化され使用可能な状態になっています。

WSLを使用してWindowsでLinuxを使用するには、メッセージのとおりMicrosoft StoreでLinuxディストリビューションをインストールします。インストール方法はこちらの記事に記載があります。

Windows10にLinuxディストリビューションをインストールする
初めにWSLを有効にします。有効にする方法はこちらの記事に記載があります。 Windows Storeを開いて「ubu...

WSLバージョンの確認

すでにLinuxディストリビューションをインストールしてある場合、確認コマンドを入力すると次のように表示されます。

>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2

WSL2にUbuntu-20.04がインストールされ、Stop状態であることが分かります。

このとき、WSLのバージョンが1だと次のように表示されます。最新版は2なので、2を使用するよう変更します。

>wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 1

WSL1からWSL2への変更方法

次のようにしてLinuxディストリビューションをWSL2へ乗せかえます。

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

>wsl --set-version Ubuntu-20.04 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。

>wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2

これで乗せかえが上手くいきました。

OSによってはカーネルコンポーネントの更新が必要な場合があります。その場合、次のように表示されます。

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

指示に従い、次のMicrosoft公式サイトからカーネルコンポーネント更新プログラムを入手し実行します。

実行すると次のようにGUIが表示されるので、流れに沿って進み更新プログラムをインストールします。インストールが完了したら再度WSL2への変更コマンドをコマンドプロンプトに入力してください。

WSL1からWSL2への変更方法

上記の変更でWSL2へLinuxディストリビューションを乗せることが出来ました。しかし、また新しくLinuxディストリビューションをインストールすると、WSL1に乗ります。

そこで、デフォルトでWSL2へ乗せるよう設定を変更します。設定の変更は次のコマンドをコマンドプロンプトで入力します。

>wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
この操作を正しく終了しました。

これでデフォルトでWSL2を使用するように設定されました。