Где находится корневой каталог файловой системы Ubuntu в подсистеме Windows для Linux и наоборот?

Я установил подсистему Ubuntu на Windows 10 (после включения функции в настройках), но где находится корневой каталог файловой системы Ubuntu на диске?

Комментарии к вопросу (13)
Решение

Для Ubuntu, установленной из магазина Windows:

Каждый дистрибутив, который вы устанавливаете через магазин, устанавливается в этот каталог appdata приложения. Например: C:\Users\\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState - benhillis

Для WSL2 вы можете получить доступ к домашнему каталогу из windows (Windows 10 build 18342) следующим образом:

\\wsl$

В ранних итерациях Windows Subsystem for Linux файловая система Ubuntu находилась по адресу %localappdata%\Lxss (например, C:\Users\Username\AppData\Local\Lxss - замените Username на ваше имя пользователя в Windows). См. запись в блоге WSL о поддержке файловых систем:

Основной файловой системой, используемой WSL, является VolFs. Она используется для хранения системных файлов Linux, а также содержимого вашего домашнего каталога Linux. директории. Как таковая, VolFs поддерживает большинство функций Linux VFS. , включая разрешения Linux, символические ссылки, FIFO, сокеты, и файлы устройств.

VolFs используется для монтирования корневого каталога VFS, используя %LocalAppData%\lxss\rootfs в качестве резервного хранилища. Кроме того, в качестве резервного хранилища используется существует несколько дополнительных точек монтирования VolFs, в первую очередь /root и /home, которые монтируются с помощью %LocalAppData%\lxss\root и %LocalAppData%\lxss\home соответственно. Причина раздельного монтирования заключается в том, что при удалении WSL домашние каталоги не > удаляются по > умолчанию. удаляются по умолчанию, поэтому все личные файлы, хранящиеся в них, будут > сохранены. сохранятся.

ВНИМАНИЕ

Создание/изменение любых файлов в подсистеме Linux с помощью приложений и инструментов Windows может привести к повреждению данных и потере данных в подсистеме Ubuntu! (Спасибо Rich Turner за предложение этих слов предостережения!) Это абсолютно не поддерживается. Из того же сообщения в блоге:

Взаимодействие с Windows

В то время как файлы VolFs хранятся в обычных файлах в Windows в каталогах, упомянутых выше, совместимость с Windows не > поддерживается. поддерживается. Если новый файл добавляется в одну из этих директорий из &gt. Windows, в нем отсутствуют эксперты, необходимые VolFs, поэтому VolFs не знает, что > делать. делать с этим файлом и просто игнорирует его. Многие редакторы также удаляют советники при сохранении существующего файла, снова делая файл непригодным для использования в WSL.


Ваша файловая система Windows находится по адресу /mnt/c в среде оболочки Bash.

Источник: Dustin Kirkland's blog, howtogeek

Комментарии (21)

Похоже, это изменилось с момента появления Bash и не относится к дистрибутивам из Windows Store, или, возможно, это не соответствует всем системам, поскольку мой домашний каталог расположен в другом месте:

%localappdata%\lxss\home\{username}

или:

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

Где {user} - имя пользователя Windows, а {username} - имя пользователя UNIX, заданное при установке.

Таким образом, корневой каталог будет:

%localappdata%\lxss

Обратите внимание, что корневой каталог может быть не виден в проводнике Windows из каталога %localappdata%. В любом случае, вы сможете получить к нему доступ, набрав его в 'адресной строке' Проводника.

Комментарии (7)

Если вы установите 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

ПС. Я использовал 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

ППС. https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

Комментарии (0)

Единственное, что работал для меня было в папке %LocalAppData%\lxss дома{имя пользователя}, где{имя}ваше имя пользователя Баш ты дал ему во время установки. По некоторым причинам, после показа скрытых папок'ы lxss уклоняется от явки в\ C:\Users\WINDOWS-USER\AppData\Local, а также предоставляет полный c: путь\ с Windows и имя пользователя Баш не работает.

И, пожалуйста, создать ярлык на рабочем столе для работы.

Комментарии (1)

Вы можете быстро открыть Bash из окна File Explorer открытой папки, набрав bash в строке расположения.

Этого достаточно.

Также вы можете добавить пункт контекстного меню. Я лично не рекомендую этого делать, если нет необходимости, потому что добавление ярлыков в контекстное меню использует больше оперативной памяти.

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

Комментарии (3)