WSL2(Windows Subsystem for Linux 2)のプレビューが開始された。
現在Fast Ringで公開中のWindows Insider Preview Build 18917には、WSL2が搭載されており、インストール作業をすることで動かすことが可能だ。WSL2については、本連載でもすでに紹介している。
●第172回 Linuxカーネルをそのまま利用する「Windows Subsystem for Linux」の新バージョン
●第173回 Build 2019で見えた「Windows Subsystem for Linux 2」の詳細
まだプレビュー段階であり、インストールにはGUIは使えず、PowerShellから作業する必要がある。このためコマンドラインに慣れていないとちょっと難しい。とはいえ、Linuxを動かしてみたいと思うユーザーならコマンドラインにはまず慣れているであろうから、ほとんど問題ないだろう。
実際のWSL2のインストール
Build 18917がすでに動作している環境なら、すぐに試すことができる。インストール方法は、以下のURLに記載がある。
●Install WSL 2 | Microsoft Docs (英語)
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install
●WSL 2 をインストールします。 | Microsoft Docs (機械翻訳)
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-install
手順を要約すると、管理者でPowershellを起動し、以下のコマンドを実行する。
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
すでにインストールされているWSL1のディストリビューション(ここではUbuntu-18.04を仮定)があるなら、
wsl --set-version Ubuntu-18.04 2
とすることで、WSL2に変換できる。

既存のWSLディストリビューションがある場合には、wsl.exeで変換する
また、WSLのディストリビューションがインストールされていない場合は、
wsl --set-default-version 2
を実行したあと、WSLのディストリビューションをMicrosoftストアアプリから入手して起動する。
1つのディストリビューションはWSL1かWSL2のどちらかでしか動作できない。wsl.exeコマンドを使うことで、ディストリビューションをWSL1用、WSL2用に切り替えることは可能だ。ただし、変換はWSLが動作していないときに実行する必要がある。
それではWSL2を動かしてみる
筆者の方で取り急ぎテストしてみたが、ざっと触った感じでは急に落ちてしまうこともなく、ある程度の安定性はあるようだ。
マイクロソフトが主張するように、仮想環境を使いながらも起動は速い。同じマシンでWSL1とWSL2(どちらもUbuntu-18.04相当)を起動してみたが、どちらも2秒程度で起動し、差はほとんどなかった。これならWSL1の代用として十分な速度といえる。
また、WSL2のext4ファイルシステムでの処理は、たしかに速い。WSL1とWSL2でfindコマンドを使って、VolFsとext4で速度を比べてみた。
/usr/bin/time find /usr /bin /lib /opt -name 'c*' > /dev/null
として、findで"c"で始まるファイルを探させた。このとき、WSL1とWSL2では、10倍ぐらいの差がある。

WSL1とWSL2のディスクアクセスを簡単に比較した。findコマンドでは実行時間に10倍程度の違いがある。ただし、WSL2は初回のアクセスに時間がかかっていた
ただし、WSL2では初回のファイルアクセスには時間がかかっているようだ。これは、ext4が仮想HDD上にあり、初回のアクセスは、起動処理やNFTS側でキャッシュが作られていないことなどが理由と思われる。起動が高速なのは、ext4から通常手順で立ち上げているのではなく、仮想マシン環境に直接実行イメージを読み込ませて起動してからだと推測される。そうなると、初回のファイルアクセスではじめて、VHDXファイル側へのアクセスが起きるため、このときに時間がかかるのだと思われる。
また、WSL2は“完全”なLinuxになっている。簡単なテストとしてFUSE(Filesystem in Userspace)を試してみた。FUSEはLinuxカーネルの機能であり、WSL1では実装されていなかった。具体的には、WSL2には、/dev/fuseがあるのに対して、WSL1には存在しない。

WSL2には、/devにfuseデバイスがある

WSL1には、/dev/fuseデバイスがない
FUSEを利用するアプリケーションは、この/dev/fuseデバイスを使って動作する。まずは「sshfs」を動かしてみた。これは、sshを使い、接続先のディレクトリなどをファイルシステムとしてマウントできるようにするコマンドだ。インストールなどについては本筋ではないので省略するが、WSL2からは、正しく動作させることができたのに対して、WSL1内では、sshfsのインストールはできるものの動作はしなかった。
WSL2により、いままでWSL1では利用できなかったLinuxコマンドが動作できるようになっている。まだプレビュー段階なので、その他の機能などで不具合が出る可能性はあるものの、とにかくFUSEは動作しているようだ。

この連載の記事
-
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた - この連載の一覧へ