О файловой системе, смонтированной на /mnt/c
- Что именно /mnt/c/Users/ сравнивается с C:\Users\? Похоже, они совпадают - так что же такое /mnt/c/?
В отличие от Windows, Linux (и другие системы, основанные на Unix) используют единую структуру папок, не зависящую от количества имеющихся у вас дисков. Если у вас несколько дисков, все эти диски в какой-то момент должны быть mounted в структуре папок.
- Обычно все диски (отличные от тех, что используются для загрузки системы) mounted в папке с именем
/mnt
или /media
WSL имеет специальный тип файловой системы с именем DrvFS, которая дает вам доступ к дискам, используемым в Windows. Вы можете использовать DrvFS для монтирования не только файловой системы Windows, но и сетевых дисков и других типов носителей.
- В WSL по умолчанию диск
C:
в windows монтируется под /mnt/c
- Если у вас есть другой диск, например, диск
D:
в windows, он будет смонтирован под /mnt/d
Файлы, которые вы видите в /mnt/c
, такие же, как и в C:
. Если вы измените какой-нибудь файл, вы также получите изменения в окнах.
Вы можете использовать команду mount
для доступа к другим типам носителей (например, съемным носителям или сетевым разделяемым ресурсам).
О местоположении /home/<username>
- Как просмотреть файлы в /home/ с помощью проводника Windows File Explorer? Не то, чтобы я бы действительно хотел… Я просто пытаюсь получить представление о том, как Windows организует эту подсистему для Linux вещь.
В WSL вся файловая система Linux расположена в папке Windows. Расположение папки зависит от версии Windows и используемого вами дистрибутива WSL.
- Инициальные версии WSL хранят файловую систему linux в дистрибутивах
%LOCALAPPDATA%\Lxss\rootfs
- WSL, установленных из Магазина Windows , начиная со сборки Windows Build 16215 (середина 2017), используйте папку типа
%LOCALAPPDATA%\Packages\...\LocalState\rootfs
. Имя пакета зависит от дистрибутива (например, для Ubuntu оно отличается от имени Debian)
- Дистрибутивы 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
После того, как вы знаете расположение папки установки, /home/<username>
находится под <installation folder>\rootfs\home\username
.
- Например, если папка установки
c:\wsl\ubuntu
/home/<username>
находится в c:\wsl\ubuntu\rootfs\home\username
NOTE: В Linux и Windows разрешения на файлы хранятся по-разному. В настоящее время WSL DrvFS хранит разрешения для Linux в виде потоков (метаданных), прикрепленных к файлам, которые вы видите в Windows. Microsoft не рекомендует изменять файлы linux с помощью программ для Windows. Возможно, что некоторые приложения Windows повреждают linux разрешения , не обращая на это внимания.