LinuxとWindowsの欲張りな環境を手にする

新しい記事へは以下のリンクからどうぞ!

WSL2とWSL1をインストールする方法

Windows Subsystem for Linux (WSL) とは、Linuxのバイナリ実行ファイルをWindows 10およびWindows Server上で実行できるようにしたものです。
WSL2はWSLの進化系です。従来のWSL1との違いは、本物のLinuxカーネルを使用し、Linuxカーネルを仮想マシン上で動作させていることとされています。メリットとしては、本物のLinuxカーネルを使用することで互換性が向上し、仮想マシンを使用することでディスクI/O性能が向上したとのことです。

WSLに必要な要件

WSL 1とWSL 2は、Windows 10 64ビット版とWindows Server 2019の両方でのみサポートされています。
WSL 1をインストールするには、Windowsビルド16215以降である必要があります。
WSL 2は、Winodows 10の大型アップデート「May 2020 Update」から利用できます。こちらからアップデートできます。
ちなみに、Windowsビルド18917以降でのみ使用可能です。systeminfoコマンドなどでOSやビルド番号を確認できます。

WSL1を有効化する方法

管理者としてPowerShellを開き、次のように入力します。

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

次に、コンピューターを再起動する必要があります。
なお、WSL1のみを有効化する方法として、本方法を記載していますが、次に述べる「WSL2を有効化する方法」から実施すれば、(上記のコマンドを実行することなく)WSL1は有効化されるようです。

WSL2を有効化する方法

まず、UEFI/BIOSセットアップ画面で「仮想化支援機能」が有効になっていることを確かめます。
次に、Windowsが提供する仮想マシンプラットフォームのオプションコンポーネントを有効化します。管理者としてPowerShellコンソールを開き、次のように入力します。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

次はその実行例です。

PS> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.1

イメージのバージョン: 10.0.19041.208

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。

次に、以下のコマンドでWSLを有効化します。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

その実行例です。

PS> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.1

イメージのバージョン: 10.0.19041.208

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。

ここでPCを再起動します。
再起動後、このリンクから入手できるWSL 2 Linuxカーネル更新パッケージをダウンロードしてインストールする必要があります(2020年5月10日時点)。

以下は、WSL 2 Linuxカーネル更新パッケージをダウンロードして起動した画面です。

WSLへのLinux(Ubuntu 20.04)のインストール

ここまでで、WSLに好きなLinuxディストリビューションをインストールする準備が整いました。
Microsoft Storeを開き、お気に入りのLinuxディストリビューションを選択します。ここではUbuntu20.04LTSを選択して、インストーラーを起動します。

完了したら、[起動]ボタンをクリックし、セットアップを開始します。
数分後、ユーザー名とパスワードの入力が促されます。入力後にセットアップが完了します。

ここで、UbuntuをインストールしたWSLのバージョンを確認してみます。管理者としてPowerShellコンソールを開き、次のように入力します。

wsl -l -v

次は実行例です。なんと、バージョン1なのです。

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

というわけで、バージョン2のWSLを利用するためには、次のコマンドでUbuntuのWSL環境を、バージョン2にアップグレードする必要があります。

wsl --set-version Ubuntu-20.04 2

実行例です。

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

ここで再度、WSLのバージョンを確認してみます。

wsl -l -v

実行例を示します。

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

これでめでたく、WSL2になりました。
WSL起動時のデフォルトのディストリビューションをUbuntu20.04にするには、以下のコマンドを実行します。

wsl -s Ubuntu-20.04

これで、”wsl”と実行するだけで、Ubuntu20.04のシェルが立ち上がります。

WSLインストールバージョンのデフォルト変更

次のようにWSLのインストールバージョンを”2″と指定することにより、それ以降のWSLのインストールでは、デフォルトでWSL2がインストールされるようになります。

wsl --set-default-version 2