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 --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倍ぐらいの差がある。
ただし、WSL2では初回のファイルアクセスには時間がかかっているようだ。これは、ext4が仮想HDD上にあり、初回のアクセスは、起動処理やNFTS側でキャッシュが作られていないことなどが理由と思われる。起動が高速なのは、ext4から通常手順で立ち上げているのではなく、仮想マシン環境に直接実行イメージを読み込ませて起動してからだと推測される。そうなると、初回のファイルアクセスではじめて、VHDXファイル側へのアクセスが起きるため、このときに時間がかかるのだと思われる。
また、WSL2は“完全”なLinuxになっている。簡単なテストとしてFUSE(Filesystem in Userspace)を試してみた。FUSEはLinuxカーネルの機能であり、WSL1では実装されていなかった。具体的には、WSL2には、/dev/fuseがあるのに対して、WSL1には存在しない。
FUSEを利用するアプリケーションは、この/dev/fuseデバイスを使って動作する。まずは「sshfs」を動かしてみた。これは、sshを使い、接続先のディレクトリなどをファイルシステムとしてマウントできるようにするコマンドだ。インストールなどについては本筋ではないので省略するが、WSL2からは、正しく動作させることができたのに対して、WSL1内では、sshfsのインストールはできるものの動作はしなかった。
WSL2により、いままでWSL1では利用できなかったLinuxコマンドが動作できるようになっている。まだプレビュー段階なので、その他の機能などで不具合が出る可能性はあるものの、とにかくFUSEは動作しているようだ。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ