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


389

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


24
ご注意ください (WSLチーム)、Linuxのディストリビューションデータフォルダーに飛び込まないことを強くお勧めします)。そうした場合、データの損失や破損が発生する可能性が非常に高くなります。この相互運用シナリオを改善するために取り組んでおり、ブログで進捗状況をお知らせします:blogs.msdn.microsoft.com/commandline
Rich Turner

@RichTurner非常に特定の(そして迷惑な)理由があることがわかりました-間違ったアクセス許可で.sshフォルダーを繰り返しマークする企業ポリシーは、企業スクリプトに対する「制限なし」として構造をマークする必要があることを意味します。しかし、一般的に-私はあなたに同意します。
ダニーステープル

最新の更新があるボックスのように見えますが、これは発生しません。
ダニーステープル

2
@DannyStaple Linuxディストリビューションのファイル/フォルダーのアクセス権をWindowsから変更する必要がある場合はwsl.exe、たとえば、Windowsファイルシステムを介してこれらのフォルダーにファイルをコピーwsl chmod 600 ~/.ssh/id*ないでください。
リッチターナー

@RichTurner:既にNTFSメタデータをトンネリングしているように、Linuxメタデータをトンネリングしてみませんか?
Mehrdad

回答:


421

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

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

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

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

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

注意

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

Windowsとの相互運用性

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


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

ここに画像の説明を入力してください

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


14
Lxssが私のファイルシステムに隠されていたので、1、2分間、頭をかきむしりました。ショートカットを作成しましたが、それでも非表示にできないようです。
Ogaday

3
@Ogadayは、システムディレクトリとしてマークされているため、プロパティウィンドウを使用して再表示することはできません。これを使用しattrib -s -h lxssて再表示することもできます。これにより、システムディレクトリとしてもマークが解除されます。
developerbmw

3
鉱山は別の場所にあるため、システム間で場所が変更または異なるように見えます。以下に自分の場所を掲載しました。
NicholasJohn16

8
@souravc回答の先頭に重要なメモを追加してください。Windowsアプリとツールを使用してLXSS内のファイルを作成/変更することを強くお勧めします。
リッチターナー

5
:上記の記事をお読みくださいblogs.msdn.microsoft.com/commandline/2016/11/17/...を。WSLからWindowsファイルシステムにアクセスするのは安全です。そのため、ドライブをにマウントします/mnt/<drive>/が、WindowsからLinuxファイルシステムにアクセスするのは(まだ)安全ではありません。
リッチターナー

51

これは、Bashが最初に導入されてから変更されたようであり、Windowsストアからの配布には適用されません。または、ホームディレクトリが別の場所にあるため、すべてのシステムで一貫性がありません。

%localappdata%\lxss\home\{username}

または:

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

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

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

%localappdata%\lxss

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


マシンが見つかりません:「C:\ Users \ {user} \ AppData \ Local \ Lxss \ {username}」または「%localappdata%\ Lxss \ home \ {username}」が「C:\ Users \ {user } \ AppData \ Local \ lxss \ {username} "は機能します。IEは「lxss」ではなく「lxss」を使用します
ジョー・コードスウェルuser601770

システムにはrootfsサブディレクトリがありますが、rootfs / homeは空ですが、。/ homeにはユーザーアカウントとファイルがあります。%localappdata%\ lxssに移動し、そこからどのレイアウトがあるかを確認し、そのアドレスを直接参照するとlxssディレクトリが非表示になる問題を回避するのが最も安全なようです。
JLA

1
@ JoeCodeswelluser601770それは奇妙です。通常、Windowsファイルシステムは大文字と小文字を区別しません。私は、%LOCALAPPDATA%\ Lxssまたは%LOCALAPPDATA%\ lxssを入力して、両方%のHOMEPATH%\のAppData \ローカル\のlxssに行くことができます
JLA

8
このフォルダー(lxss)は、隠しフォルダービューが有効になっている場合でも、WindowsエクスプローラーのAppData \ Localにあるフォルダーのリストに表示されないことに注意してください。私は、例えばそこにフォルダ「URL」を編集し、ここでファイルを取得するには、エクスプローラバーにフォルダlxssを追加し、手動で貼り付ける必要があった
コリン・D

または、デスクトップに移動し、「新規」->「ショートカット」を右クリックして、C:\ Users \ yourname \ AppData \ Local \ lxss \ home \ yournameなどのパスを貼り付けることができます
コリンD

13

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/


5

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

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


うわー良いヒント、同じ問題を抱えていた
ニコラス・モンマーツ

4

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

それは十分だ。

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

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


私にはうまくいきません。コマンドプロンプトを開き、bashを起動します。
-blablatros

@blablatrosはい。しかし、魔女のbashのフォルダーで、エクスプローラーバーbashに書き込み、Enterキーを押すと、エクスプローラーを開いていました。マイドキュメントフォルダーでWindowsエクスプローラーフォルダーを開き、ロケーションバーでbashを書き込むと、そのフォルダーで既にubuntu bashが開きます:)
Kangarooo

1
@Kangarooo:Windows 10 GUIを介してファイルにアクセスし、その逆も同様です。上記の回答で、Windows 10ファイルエクスプローラーでbashディレクトリを見つける方法を見つけたので、外付けハードドライブからそのディレクトリにいくつかのファイルをコピーしました。ただし、bashターミナルを開いてを押すとls -a、追加したファイルが表示されませんでした。Bashは、Windowsファイルエクスプローラーでドロップしたファイルを認識しませんでした。これは、Windowsにbashをインストールする目的を完全に打ち負かしました。
thinksinbinary
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.