WSL に関する補足

ここでは Windows 10 2004 よりも前のバージョンで行っていた手動での WSL 導入方法や WSL の管理方法等について補足します。

WSL の導入 (Windows 10 1607 以降 2004 未満の場合)

警告

前述の通り、既にサポート提供機関が終了していますから、この手順は非推奨です。 早急にサポートが提供されているバージョンに更新すると共に 「Windows 10 2004 以降の場合 (Windows 11 も含む)」の手順を推奨します。

実験段階の WSL2 が使える場合もありますが、基本的には WSL1 を前提として説明します。

まず、「設定」→「アプリ」→「プログラムと機能」→「Windows の機能の有効化または無効化」 (以上の手順で "C:\Windows\System32\OptionalFeatures.exe" が起動する) から、 以下の項目を有効にして再起動する必要があります。

  • ☑ Windows Subsystem for Linux

使っているバージョンによっては

  • ☑ Linux 用 Windows サブシステム

と表示されている可能性もあるかもしれません。

面倒なら、管理者権限で実行した PowerShell に リスト 111 コマンドをコピペすると良いでしょう。 設定変更後は再起動が必要なので、作業中のファイル等を保存する前に実行しないよう注意してください。

リスト 111 Windows Subsystem for Linux を有効化するコマンド
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

無事実行が完了すると リスト 112 のように再起動するか確認を求められます。 Y または何も入力せずに [ENTER] を叩くと再起動されます。自動的に再起動されると困る場合は N を入力してから [ENTER] を叩きましょう。

リスト 112 Windows Subsystem for Linux を有効化するコマンド実行例
PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
この操作を完了するために、今すぐコンピューターを再起動しますか?
[Y] Yes  [N] No  [?] ヘルプ (既定値は "Y"):

再起動が完了したら、以下のリンクから Microsoft Store を開いて Ubuntu をインストールします。

WSL の導入 (Windows 10 1903 以降 2004 未満の場合)

警告

前述の通り、既にサポート提供機関が終了していますから、この手順は非推奨です。 早急にサポートが提供されているバージョンに更新すると共に 「Windows 10 2004 以降の場合 (Windows 11 も含む)」の手順を推奨します。

Windows 10 2004 から WSL2 がバックポートされているため、一応 WSL2 は利用可能ですが、 wsl --install による自動設定ができるかは不明です。

できなかった場合は、以下の手順で設定します。

まず、「設定」→「アプリ」→「プログラムと機能」→「Windows の機能の有効化または無効化」 (以上の手順で "C:\Windows\System32\OptionalFeatures.exe" が起動する) から、 以下の2項目を有効にして再起動する必要があります。

  • ☑ Linux 用 Windows サブシステム

  • ☑ 仮想マシン プラットフォーム

面倒なら、管理者権限で実行した PowerShell に リスト 113 のコマンドをコピペすると良いでしょう。 設定変更後は再起動が必要なので、作業中のファイル等を保存する前に実行しないよう注意してください。

リスト 113 WSL と VirtualMachinePlatform を有効化するコマンド
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform

無事実行が完了すると リスト 114 のように再起動するか確認を求められます。 Y または何も入力せずに [ENTER] を叩くと再起動されます。自動的に再起動されると困る場合は N を入力してから [ENTER] を叩きましょう。

リスト 114 WSL と VirtualMachinePlatform を有効化するコマンド実行例
PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform
この操作を完了するために、今すぐコンピューターを再起動しますか?
[Y] Yes  [N] No  [?] ヘルプ (既定値は "Y"): ?

再起動が完了したら、以下のリンクから Microsoft Store を開いて Ubuntu をインストールします。

WLS1/2 のどちらで動作しているかの確認や変更は、 「Windows 10 2004 以降の場合」を参照してください。

途中、以下のような指示が表示される場合があります。表示された場合は、指示に従って適切に作業してください。

リスト 115 WSL2 のためのカーネル コンポーネントの更新要求
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください

WSL の導入 (Windows 10 2004 以降かつ 22H2 未満、及び Windows 11 22H2 未満の場合)

注釈

2022年11月以降は Microsoft Store 版の提供が開始され、現在は Microsoft Store 版が標準となっていますが、 22H2 未満の Windows でも有効かどうかは不明です。 Microsoft Store 版が有効である場合、以下の手順では Microsoft Store 版がインストールされます。 インストールの際 --inbox オプションを追加すると inbox 版 (Windows コンポーネント版) を選択することも可能ですが、 あえて inbox 版を選択するメリットはないでしょう。

ここからの作業は、管理者権限で起動した PowerShell をで行う必要があります。 まず、「PowerShell の起動方法」で紹介した方法で、 管理者権限で Windows PowerShell のウインドウを開いてください。

管理者権限の PowerShell が開いたら、wsl --install -d Ubuntu (リスト 116)と入力して [ENTER] キーを叩けば WSL のインストールが開始されます(リスト 117)。

リスト 116 WSL と Ubuntu のインストールコマンド
wsl --install -d Ubuntu
リスト 117 WSL のインストール(途中経過)
PS C:\WINDOWS\system32> wsl --install -d Ubuntu
インストール中: 仮想マシン プラットフォーム
[=================         30.0%                           ]

無事インストールが終了すると、リスト 118 のように再起動を促されますので、Windows を再起動してください。

リスト 118 WSL のインストール(正常終了、再起動待ち)
PS C:\WINDOWS\system32> wsl --install -d Ubuntu
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: Ubuntu
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
PS C:\WINDOWS\system32>

再起動後、WSL が自動的に起動してユーザー名 (リスト 119) と パスワード登録を確認のため 2 度 (リスト 120リスト 121) 要求されます。 ユーザー名は半角の英数字、パスワードは半角の英数字及び記号を組み合わせて登録しましょう。 パスワードを失念すると WSL の環境を一旦消して再構築する必要が生じるので注意してください。 親環境である Windows のユーザー名とパスワードに揃えられる場合は揃えておくとよいでしょう。

リスト 119 初回起動時の WSL とユーザー名の登録
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:
リスト 120 初回起動時の WSL とパスワードの登録(1回目)
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: USERNAME
New password:
リスト 121 初回起動時の WSL とパスワードの登録(2回目)
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: USERNAME
New password:
Retype new password:
リスト 122 初回起動時の WSL と登録完了
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: USERNAME
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.10.102.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri May 27 17:25:45 JST 2022

  System load:  1.35               Processes:             12
  Usage of /:   0.5% of 250.98GB   Users logged in:       0
  Memory usage: 1%                 IPv4 address for eth0: 172.28.149.30
  Swap usage:   0%


1 update can be applied immediately.
To see these additional updates run: apt list --upgradable


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


This message is shown once a day. To disable it please create the
/home/USERNAME/.hushlogin file.
USERNAME@HOSTNAME:~$

以上で WSL の導入は完了です。

WSL の既定のバージョン

導入した WSL の既定のバージョンが WSL1 か WSL2 かを確認するには、 PowerShell を開いて wsl --status (リスト 123)と入力して [ENTER] を叩いてください。

リスト 123 WSL の既定のバージョンを確認するコマンド
wsl --status

リスト 124 のように「規定のバージョン: 2」となっていれば WSL2 です。 特に WSL1 にする理由がなければ WSL2 を推奨します。 ただし WSL2 は Windows 標準の仮想化の仕組みである Hyper-V を使う関係上、VMWare や VirtualBox 等、 Hyper-V 以外の仮想化の仕組みと同時に使うと不具合を生じる場合があります。 そのような場合は、あえて WSL1 を使うという選択肢はあります。

リスト 124 WSL の既定のバージョンを確認した例
PS C:\WINDOWS\system32> wsl --status
既定の配布: Ubuntu
既定のバージョン: 2

Linux 用 Windows サブシステムの最終更新日: 2022/01/24
WSL の自動更新が有効になっています。

カーネル バージョン: 5.10.60.1

既定と言われているのは、導入されている distro 毎に WSL1 で動かすか WSL2 で動かすかを 選択できるためです。 distro の導入時、既定のバージョンに従って WSL1 を使うか WSL2 を使うかが自動的に決定されます。

Distro 毎の WSL バージョン確認

どの distro が WSL1 と WSL2 のどちらで動作するかを確認するには、 PowerShell に wsl --list --verbose (リスト 125)と入力して [ENTER] を叩きます(リスト 126)。

リスト 125 Distro 毎の WSL バージョン確認コマンド
wsl --list --verbose
リスト 126 Distro 毎の WSL バージョン確認コマンド実行例
PS C:\WINDOWS\system32> wsl --list --verbose
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

上記のように VERSION が 2 と表示されていれば WSL2、1 ならば WSL1 で動作します。

Distro 毎の WSL バージョン変換

Distro 毎に WLS1/2 を切り替えるには wsl --set-version に続けて wsl --list で NAME に示されている Linux distro の名前と、 切り替え後のバージョン番号 (1 または 2) を スペース区切りで入力(リスト 127)して [ENTER] を叩きます。

「変換が完了しました。」が表示されるまで数分かかりますので気長に待ちましょう。

リスト 127 Distro 毎の WSL バージョン変換コマンド
wsl --set-version distro名 バージョン番号

例えば WSL にインストール済みの Ubuntu を WSL1 から 2 に切り替えるコマンドは リスト 128 のようになり、 無事変更が完了すると リスト 129 のようになります。

リスト 128 WSL1 として導入済みの Ubuntu を WSL2 に変換するコマンド
wsl --set-version Ubuntu 2
リスト 129 WSL1 として導入済みの Ubuntu を WSL2 に変換するコマンド実行例
PS C:\WINDOWS\system32> wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。

WSL2 から 1 に切り替える場合は リスト 130 のようになり、 無事変更が完了すると リスト 131 のようになります。

リスト 130 WSL2 として導入済みの Ubuntu を WSL1 に変換するコマンド
wsl --set-version Ubuntu 1
リスト 131 WSL2 として導入済みの Ubuntu を WSL1 に変換するコマンド実行例
PS C:\WINDOWS\system32> wsl --set-version Ubuntu 1
変換中です。この処理には数分かかることがあります...
変換が完了しました。

Inbox 版から Microsoft Store 版への Update

既に inbox 版の WSL をインストール済みの場合、 リスト 132 のコマンドで Microsoft Store 版にアップデートすることができます。

実行すると UAC が表示されるので、これに許可を与えると、 リスト 133 , リスト 134 のようになり Microsoft Store 版に update されます。

リスト 132 Inbox 版 WSL から Microsoft Store 版へ update するコマンド
wsl --update
リスト 133 WSL --update による inbox 版 WSL から Microsoft Store 版への update (UAC 許可直後)
PS C:\WINDOWS\system32> wsl --update
インストール中: Linux 用 Windows サブシステム
[                           0.0%                           ]
リスト 134 WSL --update による inbox 版 WSL から Microsoft Store 版への update (完了)
PS C:\WINDOWS\system32> wsl --update
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム  はインストールされました。

Microsoft Store 版では wsl コマンドに --version オプションが追加されています。 リスト 135 のコマンドを実行して、 リスト 136 のようにバージョンが表示されれば Microsoft Store 版の WSL になっているはずです。

リスト 135 Microsoft Store 版 WSL のバージョン確認コマンド
wsl --update
リスト 136 Microsoft Store 版 WSL のバージョン確認コマンド実行結果
PS C:\WINDOWS\system32> wsl --version
WSL バージョン: 1.2.5.0
カーネル バージョン: 5.15.90.1
WSLg バージョン: 1.0.51
MSRDC バージョン: 1.2.3770
Direct3D バージョン: 1.608.2-61064218
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.19045.3031