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


14

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


からの出力は何ですか mountbash シェル?
DavidPostill

これは何の手がかりも返さない: rootfs on / type rootfs
There Are Four Lights

うーん。 OK。どうですか? cat /etc/fstab
DavidPostill

いいえ、残念ながら "linux"の観点から見るとハードウェア上にあります。 LABEL=cloudimg-rootfs / ext4 defaults 0 0
There Are Four Lights

OK。他のアイデアはありません。
DavidPostill

回答:


17

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

%USERPROFILE%\AppData\Local\Lxss\rootfs

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

他のマウントポイントは、1つ上の階層にあります。 lxss ディレクトリ。例えば、あなた自身の home Linux内のディレクトリは %USERPROFILE%\AppData\Local\Lxss\home

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

%USERPROFILE%\AppData\Local\Packages\ < distribution_specific_name>  _  < random_string>  \ LocalState \ rootfs 

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

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc 
ディレクトリ。

警告 しないでください つくる 修正する または 削除する の下にあるファイル lxss またはWindowsからのディストリビューション固有のツリー。

ファイルの探索と読み取りは、唯一の無害な操作です。これを見て マイクロソフトのブログページ 詳細については。


それは隠されていました:)
Y2K

それを簡単に見つけるためのブックマークとしてWindowsエクスプローラのクイックアクセスに追加することはできません。
john

4
ユーザーがニュートラルなコピー&ペーストが可能なバージョン: %USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri

2
警告:Microsoftによると、Windowsアプリケーションを使ってLinuxファイルシステムを変更してはいけません。 blogs.msdn.microsoft.com/commandline/2016/11/17/…
Korey

@コリーその点を思い出してくれてありがとう、答えは更新されました。
jlliagre

3

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

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

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

各ファイルシステムの場所は、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

1

最新バージョンの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 これらの道を明らかにするでしょう...

代わりに使う readlink . 現在のLinuxパスをWindowsのクリップボードへの 'DOS'パスとしてポストするためのLinuxシェル内。実際の物理パスを読むのに適切な場所に貼り付けます。


1

Microsoftがもう少し変更したり隠したりしているようです。現在は次の場所にあります。

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.