みねっちょのマイコン関係ブログ

組込開発系フリーソフトやハードの情報発信ブログ

WSL2 を V2.x ( Microsoft Store 版 ) にアップデートする

サイト内 Google 検索:


最終更新:2023-04-27

2023年の秋頃、Windows 10 用の WSL と WSL2 がアップデートされました。新しい WSL2 (V2.0 以降) は X-Window の画像を Windows 内に表示する機能 WSLg を内蔵しており、外部 X-Server (VcXsrv 等) が不要になるなど、メリットがあります。

但し、このアップデートは2024年4月現在 Windows Update では配信されないため、手動でアップデートする必用があります。

本記事では、WSL2 の V2.0 以降 (Microsoft Store 版) へのアップデート手順を解説します。尚、このアップデートは、インストール済の Linux ディストリビューションには影響を与えませんので、Ubuntu 等の再インストールは不要です。但し、若干の設定変更が必要となる場合があります。

目次:

前提条件:

WSL2 (V2.x) を利用するには、Windows 10 ビルド 19044 以降 または Windows 11 を使用している必用があります。

Microsoft Store 版に置き換えるメリット:

・常に最新版の WSL を使える ・Windows Update を実行しなくても、Micorosoft Store からアップデートが随時プッシュ配信される ・X-Window のグラフィックを Windows システムのアプリケーションとして実行可能 ・X-Server のアプリをインストールする必用が無い ・Linux のプロセス管理に systemd を利用可能

現在インストールされている WSL2 のバージョンを調べる:

Windows PowerShell もしくは コマンド プロンプトを使用して、wsl -v または wsl --version とコマンドを打った時に、コマンド ライン オプションが無効ですと表示される場合は、古いバージョンの WSL2 を実行しています。

wsl -v 実行時

wsl --version 実行時

また、wsl --status とコマンドを打った時に、最終更新日が 22/03/26カーネル バージョンが 5.10.102.1 の場合も、古いバージョンの WSL2 を実行しています。

wsl --status 実行時

WSL2 のアップデート:

WSL2 を V2.x 以降にアップデートするためには、PowerShell もしくはコマンド プロンプトを管理者権限で立ち上げて、次の一連の処理を行います。
1. WSL2 の停止:wsl --shutdown
2. 停止の確認: wsl --list --verbose
3. アップデート: wsl --update
進捗が%で表示され、最後にLinux 用 Windows サブシステムはインストールされました。 と表示されます。
4. バージョンの確認:

wsl --status
wsl --version

WSL バージョンが 2.1.5.0 以降、カーネル バージョンが 5.15 以降で、WSLg のバージョンが表示されていれば、正しくアップデートが行われいます。

WSL2 のアップデート

Microsoft Store から直接インストールする方法:

上述のようにコマンドラインで実行する以外に、マイクロソフトストアから直接インストールするという方法もあるらしいですが、私はやったことがありません。

Linux環境変数の修正と動作確認:

Linux の立ち上げを行い、DISPLAY 環境変数の修正と、動作確認を行います。
.bashrc ファイル等で DISPLAY 環境変数にホスト名や IP アドレスを指定していた場合には、:0 に修正を行います。

DISPLAY 環境変数の修正
動作確認のために Ubuntu を立ち上げて、例えば次のコマンドを打ちます。

sudo apt install x11-apps -y
xclock &
xeyes &


xclock や xeys が Windows の1アプリケーションとして実行されている事を確認します。

Systemd のサポートに対する修正:

X-Window とは関係が無いのですが、WSL2 V2.x から Linux のプロセスを管理プログラムとして systemd がサポートされるようになりました。これに伴い、プロセスを起動する init システムの規定値が、SystemV から systemd に変更になりました。このサポート追加により、下記の修正が推奨されます。

  1. /etc/wsl.conf に次の2行を追加します。
[boot]
systemd=true

root 権限にてエディタで /etc/wsl.conf を修正 (もしくは新規作成) します。
sudo nano /etc/wsl.conf または sudo vim /etc/wsl.conf
2. Linux のシェルを exit で終了します。
3. 管理者権限の Windows PowerShell もしくは コマンドプロンプト でWSLをシャットダウンします。
wsl --shtdown
4. ファイルを修正した Linuxディストリビューションを立ち上げ、systemd が動作している事を確認します。
初回の起動に少し時間が掛かるかもしれません。

systemctl list-unit-files --type=service

下へスクロールすると、systemd-*.* という行が沢山見えるはずです。
多分 less で表示されているはずなので、q で終了します。

systemctl list-unit-files --type=service の実行結果

・シャットダウンが出来る様になりましたので、終了時には次のコマンドを打てます。

sudo sync;sync;sync
sudo systemctl poeroff

参考サイト:

Microsoft Store 内の WSL に関する、マイクロソフトのドキュメント
learn.microsoft.com ・WSL2 の V2.x アップデートに関するマイクロソフトのブログ (英文)
devblogs.microsoft.com ・WSL の LinuxGUI アプリを実行する場合の、マイクロソフトチュートリアルは次の通りです。
learn.microsoft.com ・WSL の systemd に関するマイクロソフトのドキュメント
learn.microsoft.com ・WSL の systemd サポートに関するマイクロソフトのブログ (英文)
devblogs.microsoft.com


【WSL 関係の目次へ戻る】   【X-Window 関係の目次へ戻る】