Gdzie znajduje się system plików podsystemu Linux w systemie Windows 10?


22

Jest całkiem jasne, że system plików „hosta” systemu Windows 10 jest montowany /mnt/c/z punktu widzenia „Linuksa”. Ale czy można uzyskać dostęp do systemu plików „Linux” z systemu Windows? Jeśli tak, to gdzie to jest?


Jaka jest wydajność mountw bashpowłoce?
DavidPostill

To nie zwraca żadnych wskazówek:rootfs on / type rootfs
Istnieją cztery światła

Hmm Dobrze. Co cat /etc/fstab?
DavidPostill

Nie, niestety z perspektywy „linux” wygląda na sprzęt:LABEL=cloudimg-rootfs / ext4 defaults 0 0
Istnieją cztery światła

DOBRZE. Żadnych innych pomysłów.
DavidPostill

Odpowiedzi:


24

Jeden system plików root znajdował się tutaj aż do aktualizacji Windows 10 Fall Creators (wydanej w październiku 2017 r.):

%LOCALAPPDATA%\Lxss\rootfs

Na przykład, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

Inne punkty montowania znajdują się o jeden poziom wyżej w lxsskatalogu. Na przykład, będzie twój własny homekatalog w systemie Linux %LOCALAPPDATA%\Lxss\home.

Począwszy od aktualizacji Fall Creators, można zainstalować więcej niż jedną instancję systemu Linux i uruchomić je równolegle. Istniejąca instancja (inaczej starsza wersja) pozostanie w swoim katalogu, ale nowe utworzone instancje znajdują się w:

% LOCALAPPDATA% \ Packages \ <nazwa_specyfikacji dystrybucji> _ <ciąg losowy> \ LocalState \ rootfs

Na przykład moja instalacja Ubuntu 18.04 znajduje się pod

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc
informator.

Ostrzeżenie : Uważaj, aby nie tworzyć , modyfikować ani usuwać plików znajdujących się pod drzewem lxss lub drzewa dystrybucji w systemie Windows.

Przeglądanie i odczytywanie plików jest jedyną nieszkodliwą operacją. Szczegółowe informacje można znaleźć na tej stronie blogu Microsoft .

Należy pamiętać, że począwszy od kompilacji 1903 istnieje alternatywny sposób dostępu do plików działającej dystrybucji, która nie wykazuje wcześniej wspomnianych problemów.

Po prostu użyj ścieżki, \\wsl$\<distribution_specific_name>\a będziesz mógł tworzyć i modyfikować pliki. AppData nadal nie jest obsługiwanym sposobem uzyskiwania dostępu do plików z kompilacją 1903.


Był ukryty :)
Y2K

Nie mogę dodać go do szybkiego dostępu Eksploratora Windows jako zakładki, aby było to łatwe.
Jan

4
Neutralna dla użytkownika wersja umożliwiająca kopiowanie i wklejanie:%USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri

3
Ostrzeżenie: Według Microsoft nie należy modyfikować systemu plików Linux przy użyciu aplikacji Windows. blogs.msdn.microsoft.com/commandline/2016/11/17/…
Korey

1
Możesz znacznie uprościć pierwszą część tej ścieżki, używając %LOCALAPPDATA%zamiast%USERPROFILE%\AppData\Local
Herohtar,

8

Obecnie możesz zainstalować wiele dystrybucji Linuksa. Dlatego każda dystrybucja będzie miała własny system plików umieszczony w innym folderze.

  • Jeśli zainstalujesz niektóre dystrybucje linuksowe ze Sklepu Windows, systemy plików znajdują się pod %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • Jeśli zainstalowałeś, przeniosłeś lub zduplikowałem dystrybucję Linuksa za pomocą LxRunOffline lub dowolnej wersji WSLDistroLauncher , system plików może znajdować się w dowolnym folderze komputera.

Uzyskiwanie informacji z rejestru

Lokalizację każdego systemu plików można uzyskać z rejestru systemu Windows. Dane znajdują się pod

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

Możesz uruchomić okno PowerShell i wykonać następujące polecenie, aby uzyskać lokalizacje systemów plików

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

Otrzymasz tabelę z następującymi informacjami

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

Korzystanie z lxRunOffline

LxRunOffline to narzędzie do zarządzania dystrybucjami Linuksa zainstalowane na WSL. Możesz użyć LxRunOffline, aby uzyskać katalog używany przez zainstalowaną dystrybucję

# 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

W przypadku WSL2 możesz uzyskać dostęp do katalogu domowego z Eksploratora Windows w następujący sposób:

\\wsl$

Przepraszam za spóźnienie na imprezie!


To powinno być zaktualizowane, aby była poprawną odpowiedzią
getglad

1

Późniejsza wersja podsystemu Linux instaluje system plików, packagesaby pełna ścieżka wyglądała mniej więcej tak:

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

lub:

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

... w zależności oczywiście od punktu montażu. Wyszukanie katalogu .bashrcujawniłoby te ścieżki ...

Alternatywnie użyj readlink .w powłoce linux, aby opublikować bieżącą ścieżkę linux jako ścieżkę „DOS” do schowka Windows. Wklej w rozsądnym miejscu, aby przeczytać rzeczywistą ścieżkę fizyczną.


1

Wygląda na to, że Microsoft trochę to zmienił / ukrył, obecnie jest w:

% USERPROFILE% \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows _ ????????????? \ LocalState \ rootfs

Ponieważ może się to dalej zmienić w przyszłości, po prostu skorzystaj z sugestii PGP, aby przeprowadzić wyszukiwanie plików .profile lub .bashrc.


1

Stworzyłem ten skrypt, który otwiera folder WLS w Eksploratorze

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

po prostu zapisz go jako yourScript.cmd i uruchom

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.