「WSL 2」へのバージョンアップでLinux互換環境はどう変わるのか?:Windows 10 The Latest
2020年春に提供予定の機能アップデート「20H1」のプレビュー版に、WSLを強化した「WSL 2」が実装された。早速、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ディストリビューションがあるならば、以下のコマンドレットで、WSL 2用に変換を行う(ここではUbuntu 18.04を仮定)。これによりインストールされているディストリビューションがWSL 2で動作するようになる。
wsl --set-version Ubuntu-18.04 2
以後は、WSL 1と同じく、wsl.exeやbash.exe、ubuntu1804.exeなどでWSL 2上のUbuntu 18.04を起動できる。
wsl.exeコマンドも拡張
WSL 2の実装に伴い、wsl.exeコマンドのオプションも拡張されている。拡張されたのは主にWSL 2に関係するものだ。
オプション | オプション(省略型) | 動作 | October 2018 Updateまでのオプション | May 2019 Updateで実装されたオプション | WSL 2で実装されたオプション |
---|---|---|---|---|---|
--exec | -e <Cmd> | コマンド<Cmd>をWSL側で実行 | ○ | − | − |
-- <ARG> | 以後の引数<ARG>をWSL側に渡す | ○ | − | − | |
--distribution | -d <DIST> | 対象ディストリビューションの指定 | ○ | − | − |
--user | -u <USER> | WSL側ユーザーを指定 | ○ | − | − |
--export <DIST> <FILE> | 指定したディストリビューション<DIST>をtarファイル<FILE>にエクスポート | − | ○ | − | |
--import <DIST> <PATH> <FILE> | tarファイル<FILE>から指定したパス<PATH>へ<DIST>をインポート | − | ○ | − | |
--import <DIST> <PATH> <FILE> --version <VER> | 同 WSLバージョン指定<VER>付き | − | − | ○ | |
--list | -l | インストールされているディストリビューションを表示 | − | ○ | − |
--list --all | -l --all | インストールされているディストリビューション(unregister中を含む)を表示 | − | ○ | − |
--list --quiet | -l -q | インストールされているディストリビューション名だけ表示 | − | − | ○ |
--list --verbose | -l -v | インストールされているディストリビューションを詳細情報付きで表示 | − | − | ○ |
--list --running | -l --running | 起動しているディストリビューションを表示 | − | ○ | − |
--set-default | -s <DIST> | 既定のディストリビューションを<DIST>に指定 | − | ○ | − |
--set-default-version <VER> | 既定のディストリビューションを指定。WSLバージョンを<VER>に指定 | − | − | ○ | |
--set-version <DIST> <VER> | ディストリビューション<DIST>のWSLバージョンを<VER>に変換 | − | − | ○ | |
--shutdown | 起動中の全てのWSLを強制終了 | − | − | ○ | |
--terminate | -t <DIST> | 指定したディストリビューション<DIST>を終了 | − | ○ | − |
--unregister <DIST> | 指定したディストリビューション<DIST>を未登録(unregister)とする | − | ○ | − | |
--help | wsl.exeのヘルプを表示 | ○ | − | − | |
wsl.exeコマンドのオプション |
インストールされているWSLディストリビューションがWSL 1用かWSL 2用なのかを判断するには、オプションとして「-l -v」を指定すればよい(これらは「--List」オプションと「--verbose」オプションの省略形)。
既存のWSL 1用ディストリビューションをWSL 2用に変換するには、前述のように「--set-version」オプションを用いる。一方、新規にインストールするWSL用ディストリビューションをWSL 1とWSL 2のどちらで利用するのかは、「--set-default-version」オプションで指定する。
ディストリビューションはWSL 1とWSL 2のどちらかでしか実行できない
Copyright© Digital Advantage Corp. All Rights Reserved.