web-dev-qa-db-ja.com

LinuxサブシステムのファイルシステムはWindows 10のどこにありますか?

「Linux」の観点から見ると、Windows 10の「ホスト」ファイルシステムが/mnt/c/にマウントされていることは明らかです。しかし、Windowsから「Linux」ファイルシステムへのアクセスを取得することは可能ですか?もしそうなら、それはどこですか?

26

シングルルートファイルシステムは、Windows 10 Fall Creatorsの更新(2017年10月にリリース)までここにありました。

%LOCALAPPDATA%\Lxss\rootfs

たとえば、C:\Users\Vigo\AppData\Local\Lxss\rootfs\

その他のマウントポイントは、lxssディレクトリの1つ上のレベルにあります。たとえば、Linux内の独自のhomeディレクトリは%LOCALAPPDATA%\Lxss\homeにあります。

Fall Creatorsのアップデート以降、Linuxの複数のインスタンスをインストールし、それらを並行して実行することが可能です。既存のインスタンス(別名レガシー)はそのディレクトリに残りますが、作成された新しいインスタンスは次の場所にあります。

%LOCALAPPDATA%\ Packages \<distribution_specific_name>_<ランダムな文字列>\ LocalState\rootfs

たとえば、私のUbuntu 18.04インストールは、

CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

警告createmodifyまたはdeleteファイルが lxss またはWindowsの配布固有のツリー。

無害な操作は、ファイルの閲覧と読み取りのみです。詳細はこちら Microsoftブログページ を参照してください。

ビルド1903以降、実行中のディストリビューションのファイルにアクセスする別の方法があり、前述の問題が発生しないことに注意してください。

パス\\wsl$\<distribution_specific_name>\を使用するだけで、ファイルを作成および変更できます。 AppDataは、ビルド1903でファイルにアクセスするためのサポートされている方法ではありません

27
jlliagre

現在、複数のLinuxディストリビューションをインストールできます。したがって、各ディストリビューションの独自のファイルシステムが別のフォルダーに配置されます。

  • Windowsストアから一部のLinuxディストリビューションをインストールする場合、ファイルシステムは%USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfsの下にあります。
  • LxRunOffline または WSLDistroLauncher の任意のバージョンを使用してLinuxディストリビューションをインストール、移動、または複製した場合、ファイルシステムはコンピューターの任意のフォルダーに配置できます。

レジストリから情報を取得する

各ファイルシステムの場所は、Windowsレジストリから取得できます。データは以下にあります

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

PowerShellウィンドウを起動し、次のコマンドを実行してファイルシステムの場所を取得できます

PS> (Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object {Get-ItemProperty $_.PSPath}) | select DistributionName, @{n="Path";e={$_.BasePath + "\rootfs"}}

次のような情報を持つテーブルを取得します

DistributionName Path
---------------- ----
Ubuntu           C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Ubuntu-18.04     C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
mydistro         C:\wsl\mydistro\rootfs

lxRunOfflineを使用する

LxRunOffline は、WSLにインストールされたLinuxディストリビューションを管理するためのツールです。 LxRunOfflineを使用して、インストールされたディストリビューションが使用するディレクトリを取得できます

# lxrunoffline get-dir -n <name of the distro>

C:\> lxrunoffline get-dir -n backup
c:\wsl\installed\backup

C:\> lxrunoffline get-dir -n Ubuntu
C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
8
Jaime

WSL2の場合、次のようにWindows Explorerからホームディレクトリにアクセスできます。

\\wsl$

パーティーに遅れてすみません!

3
Francisco Tena

Microsoftがさらに変更/非表示にしたようですが、現在は次の場所にあります:

%USERPROFILE%\ AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows _ ?????????????\LocalState\rootfs

これは将来さらに変更される可能性があるため、.profileまたは.bashrcファイルのファイル検索を実行するというPGPの提案を実行してください。

1
jesseyu

Linuxサブシステムの新しいバージョンでは、packagesにファイルシステムがインストールされるため、フルパスは次のようになります。

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\root

または:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\home\myLinuxUserName

...もちろんマウントポイントによって異なります。 .bashrcのディレクトリ検索を実行すると、これらのパスが明らかになります...

または、Linuxシェル内でreadlink .を使用して、現在のLinuxパスをWindowsクリップボードへの「DOS」パスとして投稿します。実際の物理パスを読み取るのに適した場所に貼り付けます。

1
PGP

エクスプローラーでWLSフォルダーを開くこのスクリプトを作成しました

cd C:\Users\%USERNAME%\AppData\Local\Packages\Canonical*\LocalState\rootfs\etc
Explorer %cd%

yourScript.cmdとして保存して実行するだけです

1
Naotho Machida