web-dev-qa-db-ja.com

Linux用WindowsサブシステムのUbuntuファイルシステムのルートディレクトリはどこにありますか?

UbuntuサブシステムをWindows 10にインストールしました(設定で機能を有効にした後)が、Ubuntuファイルシステムのルートディレクトリはドライブのどこにありますか?

384
July

WindowsストアからインストールされたUbuntuの場合:

ストアを介してインストールする各ディストリビューションは、そのアプリケーションのappdataディレクトリにインストールされます。例:C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState-benhillis

Linux用Windowsサブシステムの以前の反復では、Ubuntuファイルシステムは%localappdata%\Lxssにありました(たとえば、C:\Users\Username\AppData\Local\Lxss-Usernameを置き換えます) Windowsのユーザー名で)。 ファイルシステムサポートに関するWSLブログ投稿 を参照してください。

WSLが使用する主なファイルシステムはVolFです。 Linuxホームファイルのコンテンツと同様に、Linuxシステムファイルを保存するために使用されます。そのため、VolFは、Linux許可、シンボリックリンク、FIFO、ソケット、デバイスファイルなど、Linux VFSが提供するほとんどの機能をサポートしています。

VolFsは、%LocalAppData%\lxss\rootfsをバッキングストレージとして使用して、VFSルートディレクトリをマウントするために使用されます。さらに、追加のVolFマウントポイントがいくつかあります。最も顕著なのは、/rootおよび/homeを使用してそれぞれマウントされる%LocalAppData%\lxss\rootおよび%LocalAppData%\lxss\homeです。これらの個別のマウントの理由は、WSLをアンインストールしても、ホームディレクトリはデフォルトでは削除されないため、そこに保存されている個人ファイルはすべて保持されるためです。

注意

Windowsアプリとツールを使用してLinuxサブシステム内のファイルを作成/変更すると、Ubuntuサブシステムでデータの破損とデータ損失が発生する可能性があります! ( Rich Turner これらの注意事項を提案してくれてありがとう!)これは絶対にnotサポートされています。同じブログ投稿から:

Windowsとの相互運用性

VolFsファイルは、上記のディレクトリのWindowsの通常のファイルに保存されますが、Windowsとの相互運用性はサポートされていません。これらのディレクトリの1つにWindowsから新しいファイルが追加された場合、VolFが必要とするEAが不足しているため、VolFはファイルの処理方法を認識せず、単に無視します。多くのエディターは、既存のファイルを保存するときにEAを削除し、再びファイルをWSLで使用できないようにします。


Windowsファイルシステムは、Bash Shell環境の/mnt/cにあります。

enter image description here

出典: ダスティンカークランドのブログhowtogeek

418
souravc

これは、Bashが最初に導入されてから変更されたようであり、Windowsストアからの配布には適用されません。

%localappdata%\lxss\home\{username}

または:

C:\Users\{user}\AppData\Local\lxss\{username}

ここで、{user}はWindowsユーザー名であり、{username}はインストール中に設定されたUNIXユーザー名です。

したがって、ルートディレクトリは次のようになります。

%localappdata%\lxss

ルートディレクトリは、%localappdata%ディレクトリからWindowsエクスプローラーに表示されない場合があることに注意してください。エクスプローラーの「アドレスバー」に入力することで、とにかくアクセスできるはずです。

49
NicholasJohn16

MS MarketからLinuxをインストールする場合:

彼らはディストリビューションを以下に配置しました:

$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePath
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

以下によって定義されるデフォルトのディストリビューション:

bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution
{861c29b4-ebe2-49a5-8a22-7e53a27934a0}

Linuxのルートはより深いです:

c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs

PS。私はCygwinを使用してレジストリキーを調べました。

PowerShellを同じ目標に使用する場合、コマンドは次のようになります。

# obtain the value of the ID of the default Linux distribution (and store it in a variable to avoid escaping characters issues):
$DEFAULT_LXSS_ID = (Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ -name DefaultDistribution)

# which will have a value like:
echo  $DEFAULT_LXSS_ID
{bde539d6-0c87-4e12-9599-1dcd623fbf07}

# display the directory containing the rootfs Windows directory (mapped to the / Linux directory)
Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\$DEFAULT_LXSS_ID -name BasePath | Format-List -property "BasePath"
%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState

PPS。 https://blogs.msdn.Microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

13
gavenkoa

私のために働いた唯一のものは%localappdata%\lxss\home\{username}で、{username}はインストール中に与えたBASHユーザー名です。何らかの理由で、隠しフォルダーのlxssがC:\Users\WINDOWS-USER\AppData\Local\に表示されないことを示した後、WindowsとBASHユーザー名でC:\の完全なパスを指定することもできません。

そして、機能するもののデスクトップショートカットを作成してください。

5
thinksinbinary

ロケーションバーに「bash」と入力すると、開いているフォルダーの[エクスプローラー]ウィンドウからBashをすばやく開くことができます。

それは十分だ。

また、コンテキストメニュー項目を追加できます。コンテキストメニューにショートカットを追加するとより多くのRAMが使用されるため、必要でない場合は個人的にはお勧めしません。

https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-Shell-from-windows-10s-file-Explorer/

4
Kangarooo