Де знаходиться файлова система підсистеми Linux у Windows 10?


22

Цілком очевидно, що файлова система 10 "хостів" Windows монтується /mnt/c/з точки зору "Linux". Але чи можна отримати доступ до файлової системи "Linux" з Windows? Якщо так, то де це?


Який вихід mountв bashоболонці?
DavidPostill

Це не повертає жодних підказок:rootfs on / type rootfs
Є чотири вогні

Хм. Добре. Про що cat /etc/fstab?
DavidPostill

Ні, на жаль, з точки зору "linux" він виглядає, сидячи на апаратному забезпеченні:LABEL=cloudimg-rootfs / ext4 defaults 0 0
Є чотири ліхтарі

ДОБРЕ. Інших ідей немає.
DavidPostill

Відповіді:


24

Єдина коренева файлова система знаходилась тут до оновлення Windows 10 Fall Creators (випущена в жовтні 2017 року):

%LOCALAPPDATA%\Lxss\rootfs

Наприклад, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

Інші точки монтажу розташовані на одному рівні вгорі в lxssкаталозі. Наприклад, ваш власний homeкаталог в Linux буде в %LOCALAPPDATA%\Lxss\home.

Починаючи з оновлення Fall Creators, можна встановити більше одного екземпляра Linux і запустити їх паралельно. Існуючий екземпляр (aka legacy) залишиться у своєму каталозі, але нові створені екземпляри розміщені під:

% LOCALAPPDATA% \ пакети \ <розповсюдження_специфічного_імені> _ <випадковий запис> \ LocalState \ rootfs

Наприклад, моя установка Ubuntu 18.04 розташована під

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc
каталог.

Попередження . Остерігайтеся не створювати , змінювати та не видаляти файли, розміщені під деревом lxss або розповсюдження у Windows.

Дослідження та читання файлів - єдина нешкідлива операція. Детальну інформацію див. На цій сторінці блогу Microsoft .

Зауважте, що починаючи з Build 1903, існує альтернативний спосіб отримати доступ до файлів запущеного дистрибутива, який не виявляє раніше згаданих проблем.

Просто скористайтеся контуром, \\wsl$\<distribution_specific_name>\і ви зможете створювати та змінювати файли. Досі AppData не підтримується способом доступу до файлів зі збіркою 1903.


Це було приховано :)
Y2K

Я не можу додати його до Швидкого доступу до Провідника Windows як закладки, щоб легко знайти його.
Джон

4
Нейтральна для користувача версія для копіювання та вставки:%USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri

3
Попередження: За даними Microsoft, ви не повинні змінювати вашу файлову систему linux за допомогою програм Windows. blogs.msdn.microsoft.com/commandline/2016/11/17/…
Корей

1
Ви можете значно спростити першу частину цього шляху, скориставшись %LOCALAPPDATA%замість%USERPROFILE%\AppData\Local
Herohtar

8

Сьогодні ви можете встановити декілька дистрибутивів Linux. Тому кожен дистрибутив матиме власну файлову систему, розташовану в іншій папці.

  • Якщо ви встановите деякі дистрибутиви Linux із магазину Windows, файлові системи знаходяться внизу %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • Якщо ви встановили, перемістили чи дублювали дистрибутив Linux за допомогою LxRunOffline або будь-якої версії WSLDistroLauncher , файлова система може бути розміщена в будь-якій папці вашого комп'ютера.

Отримання інформації з Реєстру

Місце розташування кожної файлової системи можна отримати з реєстру Windows. Дані розташовані під

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

Ви можете запустити вікно PowerShell і виконати таку команду, щоб отримати розташування файлових систем

PS> (Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ForEach-Object {Get-ItemProperty $_.PSPath}) | select DistributionName, @{n="Path";e={$_.BasePath + "\rootfs"}}

Ви отримаєте таблицю з такою інформацією, як наведена нижче

DistributionName Path
---------------- ----
Ubuntu           C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Ubuntu-18.04     C:\Users\Jaime\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
mydistro         C:\wsl\mydistro\rootfs

Використання lxRunOffline

LxRunOffline - це інструмент для управління дистрибутивами Linux, встановленими на WSL. Ви можете використовувати LxRunOffline, щоб отримати каталог, який використовується встановленим дистрибутивом

# lxrunoffline get-dir -n <name of the distro>

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

2

Для WSL2 ви можете отримати доступ до домашнього каталогу через провідник Windows так:

\\wsl$

Вибачте, що запізнилися на вечірку!


Це має бути оновлено, щоб відповісти правильною
getglad

1

Пізніша версія підсистеми linux встановлює файлову систему під packagesтаким чином, щоб повний шлях був би таким:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\root

або:

C:\Users\myUserName\AppData\Local\Packages\UbuntuLinux.someUID\LocalState\rootfs\home\myLinuxUserName

... залежно від курсу монтажу. Здійснення пошуку в каталозі .bashrcвиявить ці шляхи ...

Крім того, використовуйте readlink .в оболонці linux, щоб розмістити поточний шлях Linux як "DOS" шлях до буфера обміну Windows. Вставте кудись розумно, щоб прочитати фактичний фізичний шлях.


1

Схоже, Microsoft змінив / приховав це ще раз, зараз він знаходиться за адресою:

% USERPROFILE% \ AppData \ Local \ пакети \ CanonicalGroupLimited.UbuntuonWindows _ ????????????? \ LocalState \ rootfs

Оскільки це може змінитись у майбутньому, просто зробіть пропозицію PGP зробити пошук файлів .profile або .bashrc файлів.


1

Я створив цей скрипт, який відкриває папку WLS в Провіднику

cd C:\Users\Naotho Machida\AppData\Local\Packages\Canonical*\LocalState\rootfs\etc
explorer %cd%

просто збережіть його як yourScript.cmd і запустіть

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.