
wsl.exe
ヘルプ(と表示wsl.exe --help
)では、「システムの展開」について説明します。
Options:
...
--system
Launches a shell for the system distribution.
それは何ですか? WSL文書で「システムリリース」を検索すると、そのセクションから次の内容のみが取得されます。WSLディスクスペースを管理する方法:
ブロックデバイスに関する情報は次のとおりです。名前:デバイスに割り当てられた名前は
sd[a-z]
SCSIディスクを表し、使用中の各ディスクに文字を割り当てます。sda
常にシステムが分散されます。
答え1
このシェルを起動した後にインストールされた/etc/os-release
ディストリビューションの詳細については、こちらをご覧ください。
私のWSLではこれが本当のようで、Common Base Linux Mariner
ここに文書化されています。https://aka.ms/cbl-mariner
CBL-Marinerは、Microsoftクラウドインフラストラクチャとエッジ製品とサービスのためのオンプレミスLinuxディストリビューションです。 CBL-Marinerは、これらのデバイスとサービスに一貫したプラットフォームを提供するように設計されており、Linuxを最新の状態に保つマイクロソフトの能力を向上させます。 [...]
システムシェルの出力例
PS C:\Users\testuser> wsl --system
wslg [ /mnt/c/Users/testuser ]$ cat /etc/os-release
NAME="Common Base Linux Mariner"
VERSION="2.0.20230630"
ID=mariner
VERSION_ID="2.0"
PRETTY_NAME="CBL-Mariner/Linux"
ANSI_COLOR="1;34"
HOME_URL="https://aka.ms/cbl-mariner"
BUG_REPORT_URL="https://aka.ms/cbl-mariner"
SUPPORT_URL="https://aka.ms/cbl-mariner"
一般ユーザーシェルの出力例
PS C:\Users\testuser> wsl
testuser@testhost:/mnt/c/Users/testuser$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
答え2
WSLの「システム展開」(または状況によっては「a」)は少し奇妙な名前ですが、おそらく「ユーザー展開」の反対を意味します。説明するのもちょっと難しいですね。オリジナル作品に概要があります。WSLgアーキテクチャ約2年前の開発ブログ投稿です。
ほとんどのユーザーにとって、好奇心を超えてシステムの配布を知ったり使用したりする必要はありません。ただし、次の目的で使用できます。
- WSLでのWSLg/GUIの問題のデバッグ
- 必要に応じてWSLg機能を変更または交換します。
--system
WSLヘルプでこの奇妙なパラメータの機能を学びます;-)
まず、いくつかの追加の「用語」です。 「システム展開」とは何かを理解するには、まずWSLの「配布」を正しく理解する必要があります。簡単な概要 - Distroは、実行される名前空間分離環境(コンテナ)です。~へWSL2仮想マシン。バラよりこの回答もっと学ぶ。
実際には複数のシステムディストリビューションがあります。
テンプレート、ルートファイルシステム(ベース)CBLマリナーズで説明されているように@pankiの返信)これはWSL自体によって提供されます。次に、対応するルートファイルシステムを使用して作成します。
システム展開(名前空間コンテナ)各他の実行中のユーザーディストリビューション(Ubuntu、Alpine、Kali、Archなど)このシステムディストリビューションは、Wayland(RDP / RAILSを含む)、Xwayland、Weston、およびPulseAudioが実行されている場所です。その後、これらのサービスのソケットは起動時にマウントされ、バインドマウントおよび/またはユーザー展開にシンボリックリンクされます(これらの技術は時間の経過とともに変化します)。このシステムリリースには、ユーザーリリースと同じライフサイクルがあります。
デフォルトのWSLインストールでは、Ubuntu(現在20.04)をディストリビューションとして使用します。この場合、WSL / Ubuntuを起動すると、そのシステム展開が開始され、サービスが開始され、システム展開でUbuntuへのシンボリックリンク/再マウントが作成されます。このアーキテクチャは、WSL上で動作するすべてのLinuxディストリビューションに共通です。ただし、一部のディストリビューション(GNU Guix ;-))は「標準」から離れすぎる可能性があり、WSLgを使用してGUIアプリケーションを実行するには追加の作業が必要になる場合があります。
/mnt/wslg
基本的なインストールは次のとおりです/dev/sda
。 X11ソケットを含むディレクトリは/tmp/.X11
(現在)読み取り専用であり、バインドマウントされたバックです/mnt/wslg/.X11-unix
。
このアーキテクチャのすべてのコーナーを完全に探索するわけではありませんが、WaylandとPulseAudioに対して同様のバインドマウントまたはシンボリックリンクが作成されました。
したがって、WSLを起動するときに単独で起動できます。
wsl --system
すぐそこにデフォルトのユーザーが表示されますwslg
。ただし、アクセスすることもできますwsl --system -u root
。
から起動することもでき、デフォルトの展開も開始するwsl --system
ことを確認できます。wsl -l -v
「リリース別」システムリリースは、WSLリリースが開始されるたびに「要求時に」生成されるため、一時的です。ユーザーの配布が停止するとwsl --system
(または)で行った変更は失われます。wsl --system -d <user_distro_name>
変更を永続的に適用するには:独自のシステムディストリビューションを構築GithubでWSLgリポジトリを使用し、WSLgで使用するリポジトリをファイルに置き換えます.wslconfig
。正直に言うと、WSLgがリリースされてから約2年間、Microsoft以外の誰もこの作業の必要性を発見したかどうかはわかりませんが、確かに興味深い機能です。少なくとも、Microsoftが変更するのを待たずに、Westonなどのコンポーネントをアップグレード(またはロールバック)できます。