О файловой системе, смонтированной в /mnt/c
- Что такое /mnt / c / Users / по сравнению с C:\Users\? Кажется, что они один и тот же --- так что же такое /mnt / c /?
В отличие от Windows, Linux (и другие системы, основанные на Unix) используют единую структуру папок независимо от количества дисков. Если у вас есть несколько дисков, все эти диски должны быть в какой-то момент монтированы в структуру папок.
- Как правило, все диски (отличные от используемых для загрузки системы) монтируются в папку с именем
/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
ПРИМЕЧАНИЕ. В Linux и Windows права доступа к файлам хранятся по-разному. В настоящее время WSL DrvFS хранит разрешения Linux в виде потоков (метаданных), прикрепленных к файлам, которые вы можете видеть в Windows. Microsoft не рекомендует изменять файлы linux с помощью программ Windows. Возможно, что некоторые приложения Windows повреждают разрешения linux, не замечая этого.