「WSL 2」へのバージョンアップでLinux互換環境はどう変わるのか?

2020年春に提供予定の機能アップデート「20H1」のプレビュー版「Windows Insider Preview Build 18917」の提供がFast Ring(更新頻度が高く、新しい機能を早く試せるリリース)に設定しているユーザー向けに配布が開始された。このBuild 18917から、新しい機能としてWindows Subsystem for Linux (WSL)を強化した「WSL 2」のプレビューが含まれている(WSL 2については、Windows 10 The Latest「完全なLinuxがWindows 10上で稼働する? 『WSL 2』とは」参照のこと)。

本稿では、Windows Insider Preview Build 18922でWSL 2を動かしてみた結果を報告する。なお、WSL 2はプレビュー中であるため、最終的な仕様や性能などが変更される可能性のあることをお断りしておく。まず、このプレビュー版のファーストインプレッションをお届けする。

WSL 2のインストール方法

WSL 2は、Build 18917以降で利用可能だが、インストール前にあらかじめ現行のWSL(以下、区別のためにWSL 1と表記する)を有効にしておく必要がある。その上で、PowerShellのコマンドレットで有効にする必要がある。また、すでにインストールされているディストリビューションをWSL 2用に変換するか、設定を行った上で新規にディストリビューションをインストールする必要もある。

WSL 1が有効であれば、以下のコマンドレットをPowerShellで実行することで、WSL 2が有効になる。この際、PowerShellは管理者権限で起動しておく必要がある。

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

WSL 2を有効にするPowerShellのコマンドレット

その後、すでにインストールされているWSLディストリビューションがあるならば、以下のコマンドレットで、WSL 2用に変換を行う(ここではUbuntu 18.04を仮定)。これによりインストールされているディストリビューションがWSL 2で動作するようになる。

wsl --set-version Ubuntu-18.04 2

ディストリビューションをWSL 2用に変換するPowerShellのコマンドレット

以後は、WSL 1と同じく、wsl.exeやbash.exe、ubuntu1804.exeなどでWSL 2上のUbuntu 18.04を起動できる。

wsl.exeコマンドも拡張

WSL 2の実装に伴い、wsl.exeコマンドのオプションも拡張されている。拡張されたのは主にWSL 2に関係するものだ。

インストールされているWSLディストリビューションがWSL 1用かWSL 2用なのかを判断するには、オプションとして「-l -v」を指定すればよい(これらは「--List」オプションと「--verbose」オプションの省略形)。

既存のWSL 1用ディストリビューションをWSL 2用に変換するには、前述のように「--set-version」オプションを用いる。一方、新規にインストールするWSL用ディストリビューションをWSL 1とWSL 2のどちらで利用するのかは、「--set-default-version」オプションで指定する。