Microsoftは開発者向け年次イベント・Build 2019にてWSL 2(Windows Subsystem for Linux 2)を2019年内にローンチすると発表していたが、米国時間2019年6月12日にリリースしたWindows 10 Insider Preview ビルド18917(20H1)で早くもWSL 2を実装してきた。

WSL 2はHyper-Vアーキテクチャを使用しているため、「仮想マシンプラットフォーム」コンポーネントが必要となる。「Windowsの機能」から同コンポーネントを選択すれば済むが、Windows PowerShell(以下、PowerShell)を使ったほうが早い。管理者権限で「Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform」を実行し、PCを再起動する。

  • Windows Weekly Report

    PowerShellで「仮想マシンプラットフォーム」コンポーネントをインストール

次に、インストール済みのLinuxディストリビューションをWSL 2で稼働するように変換しなければならない。「wsl -l」でインストール済みLinuxディストリビューション名を確認し、「wsl --set-version 2」を実行する。さらに今後インストールするLinuxディストリビューションの既定をWSL 2に変更する場合は「wsl --set-default-version 2」を実行すればよい。単純な数値で切り替えていることからお分かりのとおり、いつでもWSL 1に戻せるようだ。

  • Windows Weekly Report

    筆者が使っているLinuxディストリビューションはDebian GNU/Linuxのため、「wsl --set-version Debian 2」と実行した

Microsoftは今のところ、WSL 1の廃止を予定していない。WSL 1およびWSL 2を並行させ、Linuxディストリビューションのアップグレード&ダウングレードを、利用者の需要に応じて切り替えることを想定している。WSL 2の初期段階では、GPUやシリアルポート、USBといったハードウェアへのアクセスは制限されているが、アクセス機能を早期に実装したいという(現状ではシリアルポートやUSBへのアクセスをサポートするWSL 1の利用を推奨している)。

また、WSL 2のパフォーマンスを享受するためには、Linuxルートファイルシステム内にファイルを配置しなければならない。つまり、WSL 1のようにNTFSに配置されたファイルへアクセスすることもできるが、WSL 1では数十秒を要するアクションを数秒で終えるためには、Linuxのルートファイルシステム内に配置する必要がある。そのため、エクスプローラーもWSL 2(Linuxルートファイルシステム)に対応した。

  • Windows Weekly Report

    WSL 2で稼働するDebian GNU/Linuxのホームディレクトリをエクスプローラーで開いた状態

現段階では、Windows 10とLinuxディストリビューション間のネットワークアクセスにIPアドレスの付与が必要な点や、両者でファイルを操作しているとパフォーマンスが低下する問題、ext4ファイルシステムを使用するVHDの手動保守といった課題が山積している。だが、Windows 10で「ほぼネイティブ」なLinuxを使えるのは、Cygwinなどを使ってきた筆者としては感慨深い。WSL 2はWindows 10 Homeでも利用可能になる予定だ。興味があればWindows Insider Programに参加するか、正式ローンチをお待ちいただきたい。

阿久津良和(Cactus)