.. _Supplymentary-about-WSL: ================= WSL に関する補足 ================= .. contents:: 目次 :depth: 4 ここでは Windows 10 2004 よりも前のバージョンで行っていた手動での WSL 導入方法や WSL の管理方法等について補足します。 WSL の導入 (Windows 10 1607 以降 2004 未満の場合) ================================================= .. warning:: 前述の通り、既にサポート提供機関が終了していますから、この手順は非推奨です。 早急にサポートが提供されているバージョンに更新すると共に 「Windows 10 2004 以降の場合 (Windows 11 も含む)」の手順を推奨します。 実験段階の WSL2 が使える場合もありますが、基本的には WSL1 を前提として説明します。 まず、「設定」→「アプリ」→「プログラムと機能」→「Windows の機能の有効化または無効化」 (以上の手順で "C:\\Windows\\System32\\OptionalFeatures.exe" が起動する) から、 以下の項目を有効にして再起動する必要があります。 * ☑ Windows Subsystem for Linux 使っているバージョンによっては * ☑ Linux 用 Windows サブシステム と表示されている可能性もあるかもしれません。 面倒なら、管理者権限で実行した PowerShell に :numref:`Windows Subsystem for Linux を有効化するコマンド` コマンドをコピペすると良いでしょう。 設定変更後は再起動が必要なので、作業中のファイル等を保存する前に実行しないよう注意してください。 .. code-block:: powershell :class: forCnP :caption: Windows Subsystem for Linux を有効化するコマンド :name: Windows Subsystem for Linux を有効化するコマンド Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 無事実行が完了すると :numref:`Windows Subsystem for Linux を有効化するコマンド実行例` のように再起動するか確認を求められます。 Y または何も入力せずに [ENTER] を叩くと再起動されます。自動的に再起動されると困る場合は N を入力してから [ENTER] を叩きましょう。 .. code-block:: ps1con :caption: Windows Subsystem for Linux を有効化するコマンド実行例 :name: Windows Subsystem for Linux を有効化するコマンド実行例 PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux この操作を完了するために、今すぐコンピューターを再起動しますか? [Y] Yes [N] No [?] ヘルプ (既定値は "Y"): 再起動が完了したら、以下のリンクから Microsoft Store を開いて Ubuntu をインストールします。 * Microsoft Store / `Ubuntu `__ .. * https://www.microsoft.com/store/productId/9PDXGNCFSCZV .. * https://aka.ms/wslstore WSL の導入 (Windows 10 1903 以降 2004 未満の場合) ================================================= .. warning:: 前述の通り、既にサポート提供機関が終了していますから、この手順は非推奨です。 早急にサポートが提供されているバージョンに更新すると共に 「Windows 10 2004 以降の場合 (Windows 11 も含む)」の手順を推奨します。 Windows 10 2004 から WSL2 がバックポートされているため、一応 WSL2 は利用可能ですが、 ``wsl --install`` による自動設定ができるかは不明です。 できなかった場合は、以下の手順で設定します。 まず、「設定」→「アプリ」→「プログラムと機能」→「Windows の機能の有効化または無効化」 (以上の手順で "C:\\Windows\\System32\\OptionalFeatures.exe" が起動する) から、 以下の2項目を有効にして再起動する必要があります。 * ☑ Linux 用 Windows サブシステム * ☑ 仮想マシン プラットフォーム 面倒なら、管理者権限で実行した PowerShell に :numref:`WSL と VirtualMachinePlatform を有効化するコマンド` のコマンドをコピペすると良いでしょう。 設定変更後は再起動が必要なので、作業中のファイル等を保存する前に実行しないよう注意してください。 .. code-block:: powershell :class: forCnP :caption: WSL と VirtualMachinePlatform を有効化するコマンド :name: WSL と VirtualMachinePlatform を有効化するコマンド Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform 無事実行が完了すると :numref:`WSL と VirtualMachinePlatform を有効化するコマンド実行例` のように再起動するか確認を求められます。 Y または何も入力せずに [ENTER] を叩くと再起動されます。自動的に再起動されると困る場合は N を入力してから [ENTER] を叩きましょう。 .. code-block:: ps1con :caption: WSL と VirtualMachinePlatform を有効化するコマンド実行例 :name: WSL と VirtualMachinePlatform を有効化するコマンド実行例 PS C:\WINDOWS\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux,VirtualMachinePlatform この操作を完了するために、今すぐコンピューターを再起動しますか? [Y] Yes [N] No [?] ヘルプ (既定値は "Y"): ? 再起動が完了したら、以下のリンクから Microsoft Store を開いて Ubuntu をインストールします。 * Microsoft Store / `Ubuntu `__ WLS1/2 のどちらで動作しているかの確認や変更は、 「Windows 10 2004 以降の場合」を参照してください。 途中、以下のような指示が表示される場合があります。表示された場合は、指示に従って適切に作業してください。 .. code-block:: :caption: WSL2 のためのカーネル コンポーネントの更新要求 :name: WSL2 のためのカーネル コンポーネントの更新要求 WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください * https://aka.ms/wsl2kernel : Linux カーネル更新プログラム パッケージをダウンロードする WSL の導入 (Windows 10 2004 以降かつ 22H2 未満、及び Windows 11 22H2 未満の場合) ================================================================================= .. note:: 2022年11月以降は Microsoft Store 版の提供が開始され、現在は Microsoft Store 版が標準となっていますが、 22H2 未満の Windows でも有効かどうかは不明です。 Microsoft Store 版が有効である場合、以下の手順では Microsoft Store 版がインストールされます。 インストールの際 ``--inbox`` オプションを追加すると inbox 版 (Windows コンポーネント版) を選択することも可能ですが、 あえて inbox 版を選択するメリットはないでしょう。 ここからの作業は、管理者権限で起動した PowerShell をで行う必要があります。 まず、「:ref:`HowTo-start-PowerShell`」で紹介した方法で、 管理者権限で Windows PowerShell のウインドウを開いてください。 管理者権限の PowerShell が開いたら、``wsl --install -d Ubuntu`` (:numref:`WSL と Ubuntu のインストールコマンド(22H2未満)`)と入力して [ENTER] キーを叩けば WSL のインストールが開始されます(:numref:`WSL のインストール(途中経過)(22H2未満)`)。 .. code-block:: powershell :class: forCnP :caption: WSL と Ubuntu のインストールコマンド :name: WSL と Ubuntu のインストールコマンド(22H2未満) wsl --install -d Ubuntu .. code-block:: ps1con :caption: WSL のインストール(途中経過) :name: WSL のインストール(途中経過)(22H2未満) PS C:\WINDOWS\system32> wsl --install -d Ubuntu インストール中: 仮想マシン プラットフォーム [================= 30.0% ] 無事インストールが終了すると、:numref:`WSL のインストール(正常終了、再起動待ち)(22H2未満)` のように再起動を促されますので、Windows を再起動してください。 .. code-block:: ps1con :caption: WSL のインストール(正常終了、再起動待ち) :name: WSL のインストール(正常終了、再起動待ち)(22H2未満) PS C:\WINDOWS\system32> wsl --install -d Ubuntu インストール中: 仮想マシン プラットフォーム 仮想マシン プラットフォーム はインストールされました。 インストール中: Linux 用 Windows サブシステム Linux 用 Windows サブシステム はインストールされました。 ダウンロード中: Ubuntu 要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。 PS C:\WINDOWS\system32> 再起動後、WSL が自動的に起動してユーザー名 (:numref:`初回起動時の WSL とユーザー名の登録(22H2未満)`) と パスワード登録を確認のため 2 度 (:numref:`初回起動時の WSL とパスワードの登録(1回目)(22H2未満)`、:numref:`初回起動時の WSL とパスワードの登録(2回目)(22H2未満)`) 要求されます。 ユーザー名は半角の英数字、パスワードは半角の英数字及び記号を組み合わせて登録しましょう。 パスワードを失念すると WSL の環境を一旦消して再構築する必要が生じるので注意してください。 親環境である Windows のユーザー名とパスワードに揃えられる場合は揃えておくとよいでしょう。 .. code-block:: console :caption: 初回起動時の WSL とユーザー名の登録 :name: 初回起動時の WSL とユーザー名の登録(22H2未満) 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: .. code-block:: console :caption: 初回起動時の WSL とパスワードの登録(1回目) :name: 初回起動時の WSL とパスワードの登録(1回目)(22H2未満) 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: .. code-block:: console :caption: 初回起動時の WSL とパスワードの登録(2回目) :name: 初回起動時の WSL とパスワードの登録(2回目)(22H2未満) 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: .. code-block:: console :caption: 初回起動時の WSL と登録完了 :name: 初回起動時の WSL と登録完了(22H2未満) 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 ". 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`` (:numref:`WSL の既定のバージョンを確認する確認コマンド`)と入力して [ENTER] を叩いてください。 .. code-block:: powershell :class: forCnP :caption: WSL の既定のバージョンを確認するコマンド :name: WSL の既定のバージョンを確認する確認コマンド wsl --status :numref:`WSL の既定のバージョンを確認した例` のように「規定のバージョン: 2」となっていれば WSL2 です。 特に WSL1 にする理由がなければ WSL2 を推奨します。 ただし WSL2 は Windows 標準の仮想化の仕組みである Hyper-V を使う関係上、VMWare や VirtualBox 等、 Hyper-V 以外の仮想化の仕組みと同時に使うと不具合を生じる場合があります。 そのような場合は、あえて WSL1 を使うという選択肢はあります。 .. code-block:: ps1con :caption: WSL の既定のバージョンを確認した例 :name: 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`` (:numref:`Distro 毎の WSL バージョン確認コマンド`)と入力して [ENTER] を叩きます(:numref:`Distro 毎の WSL バージョン確認コマンド実行例`)。 .. code-block:: powershell :class: forCnP :caption: Distro 毎の WSL バージョン確認コマンド :name: Distro 毎の WSL バージョン確認コマンド wsl --list --verbose .. code-block:: ps1con :caption: Distro 毎の WSL バージョン確認コマンド実行例 :name: Distro 毎の WSL バージョン確認コマンド実行例 PS C:\WINDOWS\system32> wsl --list --verbose NAME STATE VERSION * Ubuntu Stopped 2 上記のように VERSION が 2 と表示されていれば WSL2、1 ならば WSL1 で動作します。 .. _WSL_version_conversion_for_each_distro: Distro 毎の WSL バージョン変換 =============================== Distro 毎に WLS1/2 を切り替えるには ``wsl --set-version`` に続けて ``wsl --list`` で NAME に示されている Linux distro の名前と、 切り替え後のバージョン番号 (1 または 2) を スペース区切りで入力(:numref:`Distro 毎の WSL バージョン変換コマンド`)して [ENTER] を叩きます。 「変換が完了しました。」が表示されるまで数分かかりますので気長に待ちましょう。 .. code-block:: powershell :class: forCnP :caption: Distro 毎の WSL バージョン変換コマンド :name: Distro 毎の WSL バージョン変換コマンド wsl --set-version distro名 バージョン番号 例えば WSL にインストール済みの Ubuntu を WSL1 から 2 に切り替えるコマンドは :numref:`WSL1 として導入済みの Ubuntu を WSL2 に変換するコマンド` のようになり、 無事変更が完了すると :numref:`WSL1 として導入済みの Ubuntu を WSL2 に変換するコマンド実行例` のようになります。 .. code-block:: powershell :class: forCnP :caption: WSL1 として導入済みの Ubuntu を WSL2 に変換するコマンド :name: WSL1 として導入済みの Ubuntu を WSL2 に変換するコマンド wsl --set-version Ubuntu 2 .. code-block:: ps1con :caption: WSL1 として導入済みの Ubuntu を WSL2 に変換するコマンド実行例 :name: WSL1 として導入済みの Ubuntu を WSL2 に変換するコマンド実行例 PS C:\WINDOWS\system32> wsl --set-version Ubuntu 2 変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください 変換が完了しました。 WSL2 から 1 に切り替える場合は :numref:`WSL2 として導入済みの Ubuntu を WSL1 に変換するコマンド` のようになり、 無事変更が完了すると :numref:`WSL2 として導入済みの Ubuntu を WSL1 に変換するコマンド実行例` のようになります。 .. code-block:: powershell :class: forCnP :caption: WSL2 として導入済みの Ubuntu を WSL1 に変換するコマンド :name: WSL2 として導入済みの Ubuntu を WSL1 に変換するコマンド wsl --set-version Ubuntu 1 .. code-block:: ps1con :caption: WSL2 として導入済みの Ubuntu を WSL1 に変換するコマンド実行例 :name: WSL2 として導入済みの Ubuntu を WSL1 に変換するコマンド実行例 PS C:\WINDOWS\system32> wsl --set-version Ubuntu 1 変換中です。この処理には数分かかることがあります... 変換が完了しました。 .. _update_WSL_from_inbox_to_MicrosoftStore: Inbox 版から Microsoft Store 版への Update ============================================ 既に inbox 版の WSL をインストール済みの場合、 :numref:`Inbox 版 WSL から Microsoft Store 版へ update するコマンド` のコマンドで Microsoft Store 版にアップデートすることができます。 実行すると UAC が表示されるので、これに許可を与えると、 :numref:`WSL --update による inbox 版 WSL から Microsoft Store 版への update (UAC 許可直後)` , :numref:`WSL --update による inbox 版 WSL から Microsoft Store 版への update (完了)` のようになり Microsoft Store 版に update されます。 .. code-block:: powershell :caption: Inbox 版 WSL から Microsoft Store 版へ update するコマンド :name: Inbox 版 WSL から Microsoft Store 版へ update するコマンド :class: forCnP wsl --update .. code-block:: ps1con :caption: WSL --update による inbox 版 WSL から Microsoft Store 版への update (UAC 許可直後) :name: WSL --update による inbox 版 WSL から Microsoft Store 版への update (UAC 許可直後) PS C:\WINDOWS\system32> wsl --update インストール中: Linux 用 Windows サブシステム [ 0.0% ] .. code-block:: ps1con :caption: WSL --update による inbox 版 WSL から Microsoft Store 版への update (完了) :name: WSL --update による inbox 版 WSL から Microsoft Store 版への update (完了) PS C:\WINDOWS\system32> wsl --update インストール中: Linux 用 Windows サブシステム Linux 用 Windows サブシステム はインストールされました。 Microsoft Store 版では ``wsl`` コマンドに ``--version`` オプションが追加されています。 :numref:`Microsoft Store 版 WSL のバージョン確認コマンド` のコマンドを実行して、 :numref:`Microsoft Store 版 WSL のバージョン確認コマンド実行結果` のようにバージョンが表示されれば Microsoft Store 版の WSL になっているはずです。 .. code-block:: powershell :caption: Microsoft Store 版 WSL のバージョン確認コマンド :name: Microsoft Store 版 WSL のバージョン確認コマンド :class: forCnP wsl --update .. code-block:: ps1con :caption: Microsoft Store 版 WSL のバージョン確認コマンド実行結果 :name: 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