WSL2ストア版のインストールについて
June 26, 2023
はじめに
この記事について、実は2023年2月頃にメモとして作成しており、遅ればせながら今回ブログに上げさせていただきました。
参考したのは次のサイトです。
【参考】ASCII.jp: Microsoftストア版WSLが正式版になり、Windows 10でも動作可能に (1/2)
これまで、WSL/WSL2をインストールするには、コンパネの「プログラムと機能」の「Windowsの機能の有効化または無効化」にて、「Linux用Windowsサブシステム」を有効化する必要がありました。
更に、WSL2では、wslコマンド(wsl.exe)でWSLのインストールが可能になりました。
コマンド例
- 「
wsl --install
」でUbuntuがインストールされる - 「
wsl --install -d Debian
」でDebianがインストールされる
しかし、現在のwslコマンドは挙動が違います。
- 「
wsl --install
」で、Microsoftストア版がインストールされる - 「
wsl --install --inbox -d ディストリ名
」で、コンポーネント版がインストールされる
これまでは、Microsoftストア版はプレビュー版(Ver. 0.X)で、正式版としては、Windowsにコンポーネントとして付属しているコンポーネント版がその位置づけでした。それが2022年11月にMicrosoftストア版が正式版(Ver. 1.X)となりました。
Microsoftストア版をインストールするための条件は次のとおり。
- Windows 10 21H1以降でKB5020030(22H2の累積更新プログラム)がインストールされている
- Windows 11 22H2以降
WSL2セットアップ
まずは、WSL2をインストールする前のWindows 11のコンポーネントの状態を確認してみます。
コントロールパネル→「プログラムと機能」→「Windowsの機能の有効化または無効化」
関係ありそうなコンポーネントの状態は次のとおり。
- Hyper-V 【チェックなし】
- Linux用Windowsサブシステム 【チェックなし】
- 仮想マシンプラットフォーム 【チェック有り】
それでは、MicrosoftストアからWSL2をインストールしてみます。
Microsoftストアにて「Ubuntu」で検索した結果(2023/02/13時点)は、次のとおり。
- Ubuntu
- Ubuntu 22.04.1 LTS
- Ubuntu 20.04.5 LTS
- Ubuntu 18.04.5 LTS
とりあえず、「Ubuntu 22.04.1 LTS」(549.1MB)を選択、インストールしてみます。
インストール後、スタートメニューから、インストールされた「Ubuntu 22.04.1 LTS」を起動してみると。。。
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x8007019e
The Windows Subsystem for Linux optional component is not enabled.
Please enable it and try again.
See https://aka.ms/wslinstall for details.
Press any key to continue...
Linux用Windowsサブシステムコンポーネントが有効になっていないので有効にしろ、とのエラーが出ます。
そう、確かに「Windowsの機能の有効化または無効化」で有効にしていないからですね。でも。問題ありません。
Microsoftストアで、Ubuntuをインストールしただけでは、Linux用Windowsサブシステム、いわゆるWSLは有効にならないようです。
そこで、次のコマンドを実行すると、コンポーネントにて有効せずとも、ストア版としてのLinux用Windowsサブシステムをインストールできるようです。
「wsl --install --no-distribution
」とするとLinuxディストリビューションはインストールされませんが、WSL2としての機能、私自身良くわかっておりませんが、ベースとなる部分(サイズにして456MB)がだけがインストールされるようです。
PS C:\Users\hoge> wsl --install --no-distribution
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
要求された操作は正常に終了しました。変更を有効にするには、システムを
再起動する必要があります。
一旦、Windowsの再起動が必要、その後自動でインストールが始まります。
Windows再起動、再度、Ubuntu 22.04.1 LTSを起動してみます。
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match
your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: hoge
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
:
上手くインストールできたようです。
ちなみに、コントロールパネルの「Windowsの機能の有効化または無効化」のところは依然、
- Hyper-V 【チェックなし】
- Linux用Windowsサブシステム 【チェックなし】
- 仮想マシンプラットフォーム 【チェック有り】
のままですが、「設定」→「アプリ」→「インストールされているアプリ」のリストの中に、「Linux用Windowsサブシステム」 が入っておりました。これが恐らくストア版WSLということになるのだと思います。
これで、コンポーネント版なしに、完全にストア版のWSLを導入できました。
コンポーネント版のWSLが存在する場合とそうでない場合では、「wsl –status」コマンドを実行すれば分かります。
コンポーネント版がない場合
PS C:\Users\hoge> wsl --status
既定のディストリビューション: Ubuntu-22.04
既定のバージョン: 2
WSL1 は、現在のマシン構成ではサポートされていません。
WSL1 を使用するには、"Linux 用 Windows サブシステム" オプション
コンポーネントを有効にしてください。
コンポーネント版がある場合
PS C:\Users\hoge> wsl --status
既定のディストリビューション: Ubuntu-22.04
既定のバージョン: 2
また、コンポーネント版、ストア版、どちらでWSL2が動いているかどうかは、上記参考サイトによれば、「wsl –version」コマンドにて、ヘルプが出れば「コンポーネント版」、バージョン表示出れば「ストア版」だそうです。
また「systemd」にも対応可能になったようです。「/etc/wsl.conf」に次を記述。
[boot]
systemd = true