• Windows Subsystem for Linuxガイド 第13回 Microsoftストア版WSL

Microsoftストアで配布されていたWindows Subsystem for Linux(WSL。写真02)が、正式版となり、Windows 11、10ともに同じWSLが利用できるようになった。これにより、最新版のWSLは、Windows自体のリリースとは分離され、Microsoftストアから入手が可能になった。今後の標準は、Microsoftストアから配布されるWSLとなる。今回は、こうした配布体制の変化に伴い、Microsoftストア版のWSLと、これに伴って変更されるWSLのインストール、アップデートなどを解説する。外部ドライブのマウントで、Linux側でのドライブ初期化の解説を予定していたが、オプションの変更などが入るため、次回に延期させていただきたい。

  • 写真02: Microsoftストアで配布しているWSLはプレビュー段階を終了し、正式配布となった。これにより、WSLは、Windowsのバージョン/ビルドとは独立して配布されるようになった

WSLの配布形態

従来、WSLは、Windowsとともに配布され、設定(コントロールパネル ⇒ プログラムと機能 ⇒ Windowsの貴機能の有効化または無効化)や、wsl.exe --installコマンドなどで有効化されていた。しかし、現在Windowsは、Windows 10、Windows 11のそれぞれに複数バージョンが存在し、さらにWindows Insider Programのプレビュー版が存在する。こうしたWindowsに付属するWSLをコンポーネント版と、この記事では呼ぶことにする。

これに対して、2021年の10月より、MicrosoftストアでWSLの配布がプレビューとして開始された。これは、配布されるWSLもコンポーネント版とは異なっており、Windows 11とWindows Insider ProgramのWindows 11のプレビュー版が対象だった。なお、コンポーネント版と区別するため、Microsoftストアで配布されるWSLを「ストア版」と表記する。

簡単にいうと、ストア版が正式版となったことで、WSLは、Windows自体のリリースと分離され、Microsoftストア経由で別タイミングでリリースされるようになる。

WSLのバリエーション

WSLは、Windowsと同時に配布されていたため、現状複数のバリエーションが存在する。具体的には、Windows 10のサービス中のバージョン(21H1~22H2、LTSなど)、同じくWindows 11(21H1、22H2)と、Windows Insider Programのプレビュー版Windows 11(Dev/Beta/Release Previewチャンネル版)である。この中には、ほぼ同等なものもあるが、Windowsのリリースが異なるため、wsl.exeや関連するwslhost.exeなどのバージョンが異なっている。つまり、多数のバリエーションが存在していたことになる。これらの中にはユーザーから見て同一視できるものも含まれるが、どれとどれが同一なのかという情報はなく、WindowsのバージョンでWSLを区別することしかできない。1つの目安として、WSL2で利用するLinuxカーネルに応じてWSLの機能が決まるものが少なくないため、利用しているカーネルのバージョンである程度区別は可能だった。しかし、Windows 11のLinux GUIアプリ実行機能(WSLg)などのように、Windows 10と11の違いとして提供される機能もあり、簡単に同一視するわけにもいかなかった。

今回のストア版の正式版化により、配布されるWSLは、「Latest」と「Pre-Release」の2つのみになった。前者は、通常版Windows 10/11に対して配布され、後者は、Windows Insider Programのプレビュー版に対して配布されるようだ。

現在の配布バージョンを(表01)に示す。現状ストア版WSLには、「Latest」と「Pre-Release」の2つがあり、wsl.exeのオプションなどが若干異なる。

  • ■表01

ストア版WSLの動作条件

ストア版WSLには、Windowsの対応バージョンが具体的に示されており、条件を満たすWindowsでのみ動作するとされている。これをまとめたのが(表02)である。簡単にいうと、Windows 10ならば、各バージョンともビルド番号の小数点以下が“2311”以上になっているもので、アップデートのKB5020030がインストールされている必要がある。

  • ■表02

Windows 11 Ver.21H2の場合にはKB5019157がインストールされていて、ビルド番号の小数点以下が“1281”以上になっているものだ。Windows 11 Ver.22H2は、OSビルド22621.819以上で大丈夫なようである。

なお、Windows 10、Windows 11 Ver.22H1ともに、必要なアップデートは2022年11月15日に配布が開始されているので、まだ、更新されていない可能性がある。その場合、11月8日のBアップデートで配布された最新のアップデートを入れたのち、Windows Updateカタログからアップデートをダウンロードし、インストールすることも可能だ。

・Microsoft Update カタログKB5019157(Windows 11 Ver.21H2用)
https://www.catalog.update.microsoft.com/Search.aspx?q=KB5019157
・Microsoft Update カタログkb5020030(Windows 10用)
https://www.catalog.update.microsoft.com/Search.aspx?q=kb5020030

ストア版とコンポーネント版の区別

ストア版とコンポーネント版のどちらのWSLを利用しているのかは、いくつかの確認方法がある。もっとも簡単なものは、wsl.exeに“--version”オプションがあるかどうかで判断できる。


wsl.exe --version

を実行して、バージョン番号が表示されれば、ストア版WSLがインストールされていて、それを実行している。もし、エラーになれば、ストア版WSLはインストールされておらず、コンポーネント版WSLを利用していることになる。

WSLのインストール状態

現在のWindows 10/11は、コマンドラインからのインストールを可能にするため、wsl.exeが付属している。WSLが未インストール状態でもwsl.exeが利用できる。これをここでは「標準版」wsl.exeと表記する。

WSL自体には、ストア版、コンポーネント版の2つがあるため、Windows 10/11ではWSLのインストール状態は4パターンになる(表03)。1つは、WSLがインストールされていない場合、それにストア版、コンポーネント版のどちらか1つがインストールされている場合で2つ、もう1つはストア版とコンポーネント版が同時にインストールされている場合だ。このとき、wsl.exeは三種類あって、そのどれか1つが実行される。

  • ■表03

このため、コマンドラインからWSLをインストール、またはアップデートするときに指定するオプションが異なっている。表04に「標準版」、「コンポーネント版」、「ストア版」のインストール、アップデート用のコマンドラインオプションを示す。

  • ■表04

ストア版WSLのインストール条件で指定されていたWindowsのアップデートは、「標準版」wsl.exeを更新する。この「標準版」wsl.exeは、標準でストア版のインストールを行う。

これに対して、すでにコンポーネント版WSLがインストールされている場合も、Windowsアップデートでwsl.exeが更新され、“--update”オプションは、ストア版WSLへのアップデートを行うようになる。

WSLのインストールとアップデート

WSLをwsl.exeからインストールあるいはアップデートしようとするとき、選択肢としてストア版とコンポーネント版があり、前述のように、Windows 10/11には、WSLに関して、4つのインストール状態がある。

一番簡単な選択肢は、Microsoftストアからストア版WSLをインストールする方法だ。この方法では、Windows 10/11の状態にかかわらず、ストア版WSLが利用できるようになる。また、GitHubからmsixパッケージを使ってインストールを行うことも可能だ。

ただし、WSL1を使いたい場合、かつ、これまでWSLを使っていなかった場合には、手動でコンポーネント版のインストールを行う必要がある。

コンポーネント版がインストールされていない場合に限り、以下のコマンドで、WSL1を有効にしてストア版をインストール可能だ。


wsl.exe --install --enable-wsl1

すでにコンポーネント版がインストールされている場合には、単純に“wsl.exe --install”でストア版が追加インストールされるため、WSL1が有効になる。

また、ソフトウェア検証などの理由からコンポーネント版WSLを維持したいときは、


wsl.exe --update --inbox

でアップデート(Linuxカーネルの更新など)を行うようにする。ただし、Linuxカーネルの更新はWindows Updateでも行える。「設定 ⇒ Windows Update ⇒ 詳細オプション」で「その他のMicrosoft製品の更新プログラムを受け取る」をオンにしておけばよい。

なお、ストア版WSLはアンインストールすることも容易なので、失敗しても元に戻すことは可能だ。インストール状態は、前述の“--version”オプションの有無でも判定は可能だが、「設定 ⇒ アプリ ⇒ インストールされているアプリ」でも確認ができる。ここにペンギンのアイコンがある「Linux Windowsサブシステム」(日本語版Windowsではカタカナ表記)があれば、ストア版WSLが登録されている(写真03)。英語表記の「Windows Subsystem for Linux~」となっているものは、コンポーネント版WSLのWindows 11用アップデートモジュールである。

  • 写真03: 「設定 ⇒ アプリ ⇒ インストールされているアプリ」にある「Linux用Windowsサブシステム」(ペンギンアイコン)がストア版WSLである。これでストア版のアンインストールが可能

ストア版WSLをアンインストールするには、ここにあるペンギンアイコンを持つ「Linux Windowsサブシステム」をアンインストールする。

コンポーネント版WSLをアンインストールするには、コントロールパネルの「プログラムと機能」から、「Windowsの機能の有効化または無効化」で「Linux用Windowsサブシステム」のチェックボックスを外す(写真04)。

  • 写真04: コントロールパネルの「プログラムと機能」にある「Windowsの機能の有効化また無効化」で「Linux用Windowsサブシステム」のチェックボックスをオフにすることで、コンポーネント版WSLをアンインストールできる

現時点では、インストール先Windowsが標準リリース版であれば、ストア版WSLの「Latest」版がインストールされ、Windows Insider Programのプレビュービルド版Windowsならば、「Pre-Release」がインストールされるようだ。

しかし、最新の「Pre-Release」Ver1.0.3では、wsl.exeにストア版「Pre-Release」をインストールするかどうかのオプション(--pre-release)が、追加されており、ユーザーがどちらのストア版をインストールするか選択できるようになる予定だ。

Windows Subsystem for Linuxガイド 連載バックナンバー
https://news.mynavi.jp/tag/winsubsystem/