2017-03-04 01:59:01 +0000 2017-03-04 01:59:01 +0000
113
113

Windows Subsystem for Linux のホームディレクトリは何ですか?

Windows Subsystem for Linuxでbashを起動すると、

/mnt/c/Users/<username>

というディレクトリに落ちてきます。 このディレクトリをlsすると、Windowsのファイルエクスプローラを使ってDesktopにあるディレクトリDocumentsC:\Users\<username>などが表示されます。ここがbashプログラムの起動場所なので、ここが自分のホームディレクトリだと思っていたのですが、cdcd ~と入力すると、

/home/<username>

に飛ばされ、そこには自分の.bashrc.profileなどのファイルが入っていて、Linuxボックスのホームディレクトリにあると思っていたものが入っていました。さらに、ここから cd ../.. を入力すると、bin, etc などのディレクトリが表示されます。

これらすべてについて、2つの疑問があります。

1./mnt/c/Users/<username>C:\Users\<username> を比較して、/mnt/c/ は正確には何ですか? /home/<username>と0x6&を比較して、0x6&とは一体何なのでしょうか?Windowsのファイルエクスプローラを使って0x6&のファイルを見るにはどうすればいいですか?Windows が Linux 用のサブシステムをどのように整理しているのかを理解しようとしているだけです。

回答 (11)

132
132
132
2017-12-29 12:07:21 +0000

2について: 現在のパスは、グローバルパスではなく、Microsoft Storeからインストールしたディストリビューションに関連するようになりました。つまり、Ubuntuの場合、現在は以下の場所にあります。

%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

その他のディストリビューションも同様の場所にあると思います。

%LOCALAPPDATA%\Packages\
33
33
33
2017-03-04 02:59:20 +0000
  1. /mnt/cC:1./mnt/c`はと全く同じです。これはWSLから取得するための構文です。
  2. C:\Users\<username>\AppData\Local\Lxss\rootfs を見てください。
21
21
21
2018-08-09 12:58:03 +0000

/mnt/c

  1. C:Usersと比較して、/mnt/c/Users/は何なのでしょうか?同じもののようですが、/mnt/c/とは何でしょうか?

Windowsとは対照的に、Linux(とUnixベースの他のシステム)では、ディスクの数に関係なく単一のフォルダ構造を使用しています。複数のディスクを持っている場合、これらすべてのディスクはどこかの時点でフォルダ構造に_マウントされていなければなりません。

  • 通常、(システムの起動に使用されたものとは別の)すべてのディスクは、/mnt または /media

という名前のフォルダに mounted されます。DrvFS を使用して、windows ファイルシステムだけでなく、ネットワークディスクやその他のメディアタイプもマウントすることができます。

  • WSL では、デフォルトでは、windows の C: ディスクは /mnt/c の下にマウントされます - 他のディスク、例えば windows の D: ディスクがある場合、それは /mnt/d

の下にマウントされます。ファイルを変更した場合は、ウィンドウズにも変更が反映されます。

/mnt/c コマンドを使用して他のタイプのメディアにアクセスすることができます (リムーバブルドライブやネットワーク共有など)。


C:

1.Windowsのファイルエクスプローラを使って/home/にあるファイルを見るにはどうしたらいいですか?Windows が Linux 用のサブシステムをどのように整理しているかを理解しようとしているだけです。

WSLでは、すべてのlinuxファイルシステムはWindowsフォルダの下にあります。フォルダの場所は Windows のバージョンと使用している WSL ディストリビューションによって異なります。

  • WSLの初期バージョンでは、linuxファイルシステムはmount
  • WindowsストアからインストールされたWSLディストリビューションでは、Windows Build 16215(2017年半ば)から、/home/<username>のようなフォルダを使用しています。
  • 他のツールを使用してインストールされたLinuxディストリビューション lxRunOffline WSL-DistroLauncher のようなものは、linuxファイルシステムを任意の場所に保存することができます。

WSLフォルダの場所を知るための多くのオプション をチェックしてみてください。例えば、 lxRunOffline を使ってインストールフォルダを知るのが一番簡単な方法だと思います。

## You can use lxrunoffline to check which WSL distributions have installed
## using: lxrunoffline list

C:\> lxrunoffline list
backup
Ubuntu-18.04    

## And you can use it to get the location of any of these WSL installations
## using: lxrunoffline get-dir -n <name of distribution>

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

インストールフォルダの場所がわかれば、%LOCALAPPDATA%\Lxss\rootfsの下に%LOCALAPPDATA%\Packages\...\LocalState\rootfsがあります。

  • 例えば、インストールフォルダが/home/<username>
  • の場合、<installation folder>\rootfs\home\usernamec:\wsl\ubuntu

にあります。現在、WSL DrvFSでは、Linuxのパーミッションは、Windowsで見ることができるファイルに添付されたStream(メタデータ)として保存されています。マイクロソフトは、Windowsのプログラムを使ってlinuxのファイルを変更することを推奨していません。それはいくつかのWindowsのアプリケーションは、それに気づかずにlinuxのパーミッションを損傷する可能性があります。

7
7
7
2019-02-20 18:35:13 +0000

Bashで、Windowsのファイルエクスプローラでカレントディレクトリを表示するには、次のように入力します。

explorer.exe .

“. "を省略しないでください。

0x1&

と入力すると、Windowsエクスプローラーが現在のフォルダで開き、Windowsシステムの他の部分との関係ですべてのものがどこにあるかを確認できます。

6
6
6
2018-07-16 08:06:17 +0000

どのwindowsビルドを使っているかにもよると思いますが、2018年の私の場合、Windows 10 Pro 64-bit、バージョン1709(OSビルド16299.522)、さらにバージョン1803(OSビルド17134. 165) [皮肉にも私がこれを入力している間にwindowsのアップデートが発生しました]場所はまだ:

C:\Users\<username>\AppData\Local\lxss

トリックはC:\Users\<username>\AppData\Localにいるときにlxssフォルダが表示されないことです(たまたまフォルダオプションで「保護されたオペレーティングシステムファイルを隠す(推奨)」のチェックを外している場合を除く)。

ただし、ウィンドウズエクスプローラーのアドレスバーに\lxssを追加するだけで、そのフォルダに移動します。

(Michael Bondsの回答で言及されていた%LOCALAPPDATA%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscなどは私は持っていませんでした。)

Update

私がインストールしていたレガシーWSLがあることが判明しました。現在、WSLはMicrosoftストアアプリを介して提供されています。Ubuntu 18.04 LTS用のバージョンと、現在ではいくつかの他のフレーバーのLinux (例: Debian)用のバージョンがあります。最新の状態にしたい場合は、レガシーWSLをアンインストールしてMicrosoftストア版をインストールするとよいでしょう。

ホームフォルダがどこにあるかは、インストールした WSL の種類によって異なります。

4
4
4
2018-01-15 12:07:42 +0000
  1. 1. ホームディレクトリに WSL bash コンソールを使用して、任意の特定の名前のファイルを作成します。
  2. 次に、Windowsエクスプローラを使用して、検索ボックスを使用して、ファイルtest_here.txtを検索します。
  3. 見つかったファイルの上で、右クリックして、ファイルを開く。
3
3
3
2019-11-16 15:21:34 +0000

現在のWindows 10 Insider (Fast ring: Windows 10 build 19025.1)では、ネットワークドライブとしてディストロをマウントすることができます。WSLはwls$としてアクセス可能で、パスはディストリビューション名(wsl -l -q)です。

例:net use Z: \wsl$\Debian /PERSISTENT:YES

2
2
2
2019-01-11 16:56:17 +0000

windows 10 proの4つの手順で、Debian/Ubuntu/OpenSUSEの$HOMEをWindowsのスタートメニューに固定します。

1.スタートメニューからファイルエクスプローラを起動 2. アドレスバー(検索バーではなく)に %LOCALAPPDATA% と入力します。 3. 検索バーで$HOMEディレクトリ名を探します。これには3つのバージョンがあると思いますが、パスが長い方がいいでしょう。 4. ホームディレクトリを右クリックして、"Pin to Start “をクリックします。

これでホームディレクトリがスタートメニューに固定されました。ショートカットを作ってみましたが、どこにも分かりません。

0
0
0
2019-12-10 11:31:19 +0000

Chocolatey ](https://chocolatey.org/)でインストールした場合、ホームディレクトリへのパスは次のようになります:

C:\ProgramData\chocolatey\lib\wsl-<distribution-name>\tools\unzipped\rootfs\home

例: Ubuntu 18.04 の場合

C:\ProgramData\chocolatey\lib\wsl-ubuntu-1804\tools\unzipped\rootfs\home

の場合

0
0
0
2019-12-19 09:08:46 +0000

私のセットアップ( https://developer.microsoft.com/en-us/windows/downloads/virtual-machines からダウンロードした “Windows 10開発環境 "の下のWSL Ubuntu)では、AppDataフォルダはデフォルトで非表示になっていました。そのため、以下のようにしなければなりませんでした。

  • Windows explorer
  • `C:\Users\User私のセットアップ([ https://developer.microsoft.com/en-us/windows/downloads/virtual-machines ]0x3&からダウンロードした "Windows 10開発環境 "の下のWSL Ubuntu)では、AppDataフォルダはデフォルトで非表示になっていました。そのため、以下のようにしなければなりませんでした。

- Windows explorer

  • メニューでviewを選択
  • hidden items をチェック AppData
  • するとC:\Users\User の下に/home/userフォルダが表示され、 C:\Users\User\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs\home\userの下に私の*を発見しました(0x6&はおそらく何らかのローカルコードかバージョンに応じたコードです)

なぜこのように隠されているのかはわかりません。

0
0
0
2019-04-15 11:34:10 +0000

Windows 10のNTFSストレージを調べてUbuntu 16.04を使って/etc/environmentを見つける必要があっただけです。ここにありました。

C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Windowsの命名法のために/mnt/c/C:Windows 10のNTFSストレージを調べてUbuntu 16.04を使って/etc/environment`を見つける必要があっただけです。ここにありました。
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Windowsの命名法のために/mnt/c/をに変更しました。
  • 同じ理由で、/の出現回数をすべてWindows 10のNTFSストレージを調べてUbuntu 16.04を使って/etc/environment`を見つける必要があっただけです。ここにありました。
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Windowsの命名法のために/mnt/c/C:Windows 10のNTFSストレージを調べてUbuntu 16.04を使って/etc/environment`を見つける必要があっただけです。ここにありました。
C:\Users\USER_NAME\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\environment
  • Windowsの命名法のために/mnt/c/をに変更しました。
  • 同じ理由で、/の出現回数をすべてに変更しました。
  • USER_NAME を Windows のユーザー名に置き換える必要があります。
  • WSL に保存されているユーザーファイルを閲覧するための権限を取得するために sudo -H Nautilus を使用しなければなりませんでした。
  • Windowsアプリケーションを使用してWSL内のLinuxファイルを更新しないでください。Linuxデータが破損します**。

Linux (Ubuntu 16.04)側から見ると、以下のようになります。

$ sudo cat /mnt/c/Users/USER_NAME/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc/LocalState/rootfs/etc/environment

PATH="/mnt/e/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export LIBGL_ALWAYS_INDIRECT=Yes
export DISPLAY=localhost:0.0