Wo befindet sich das Dateisystem des Linux-Subsystems in Windows 10?


22

Es ist ziemlich klar, dass das "Host" -Dateisystem von Windows 10 /mnt/c/aus Sicht von "Linux" eingehängt ist . Aber ist es möglich, von Windows aus auf das "Linux" -Dateisystem zuzugreifen? Wenn ja, wo ist es?


Was ist die Ausgabe mountin einer bashShell?
DavidPostill

Dies gibt keine Hinweise zurück:rootfs on / type rootfs
Es gibt vier Lichter

Hmm. In Ordnung. Was ist cat /etc/fstab?
DavidPostill

Nein, aus der "Linux" -Perspektive sieht es leider so aus, als ob es auf Hardware sitzt:LABEL=cloudimg-rootfs / ext4 defaults 0 0
There Are Four Lights

IN ORDNUNG. Keine anderen Ideen.
DavidPostill

Antworten:


24

Das einzelne Root-Dateisystem befand sich hier bis zum Windows 10 Fall Creators-Update (veröffentlicht im Oktober 2017):

%LOCALAPPDATA%\Lxss\rootfs

Beispielsweise, C:\Users\Vigo\AppData\Local\Lxss\rootfs\

Andere Einhängepunkte befinden sich eine Ebene höher im lxssVerzeichnis. Zum Beispiel befindet sich Ihr eigenes homeVerzeichnis innerhalb von Linux in %LOCALAPPDATA%\Lxss\home.

Ab dem Fall Creators-Update können mehrere Linux-Instanzen installiert und parallel ausgeführt werden. Die vorhandene Instanz (auch bekannt als Legacy) bleibt in ihrem Verzeichnis, aber neu erstellte Instanzen befinden sich unter:

% LOCALAPPDATA% \ Packages \ <Distributionsspezifischer_Name> _ <Zufallszeichenfolge> \ LocalState \ rootfs

Zum Beispiel befindet sich meine Ubuntu 18.04-Installation unter der

CanonicalGroupLimited.Ubuntu18.04onWindows_ 79rhkp1fndgsc
Verzeichnis.

Warnung : Achten Sie darauf, keine Dateien zu erstellen , zu ändern oder zu löschen , die sich unter dem lxss- oder distributionsspezifischen Baum von Windows befinden.

Das Durchsuchen und Lesen von Dateien ist der einzige harmlose Vorgang. Weitere Informationen finden Sie auf dieser Microsoft-Blogseite .

Beachten Sie, dass es ab Build 1903 eine alternative Möglichkeit gibt, auf die Dateien einer laufenden Distribution zuzugreifen, die die zuvor genannten Probleme nicht aufweist.

Verwenden \\wsl$\<distribution_specific_name>\Sie einfach den Pfad und Sie können Dateien erstellen und ändern. Die AppData ist immer noch keine unterstützte Möglichkeit, mit Build 1903 auf Dateien zuzugreifen.


Es wurde versteckt :)
Y2K

Ich kann es dem Schnellzugriff von Windows Explorer nicht als Lesezeichen hinzufügen, um es einfach zu finden.
John

4
Eine benutzerneutrale Version zum Kopieren und Einfügen:%USERPROFILE%\AppData\Local\Lxss\rootfs
Silveri

3
Warnung: Laut Microsoft sollten Sie Ihr Linux-Dateisystem nicht mit Windows-Anwendungen ändern. blogs.msdn.microsoft.com/commandline/2016/11/17/…
Korey

1
Sie können den ersten Teil dieses Weges %LOCALAPPDATA%%USERPROFILE%\AppData\Local
erheblich

8

Heutzutage können Sie mehrere Linux-Distributionen installieren. Daher hat jede Distribution ihr eigenes Dateisystem in einem anderen Ordner.

  • Wenn Sie einige Linux-Distributionen aus dem Windows Store installieren, befinden sich die Dateisysteme unter %USERPROFILE%\AppData\Local\Packages\...\LocalState\rootfs
  • Wenn Sie eine Linux-Distribution mit LxRunOffline oder einer beliebigen Version von WSLDistroLauncher installiert, verschoben oder dupliziert haben , kann sich das Dateisystem in einem beliebigen Ordner Ihres Computers befinden.

Abrufen der Informationen aus der Registrierung

Der Speicherort jedes Dateisystems kann der Windows-Registrierung entnommen werden. Die Daten befinden sich unter

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

Sie können ein PowerShell-Fenster starten und den folgenden Befehl ausführen, um die Speicherorte der Dateisysteme abzurufen

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

Sie erhalten eine Tabelle mit folgenden Informationen

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 verwenden

LxRunOffline ist ein Tool zum Verwalten von auf WSL installierten Linux-Distributionen. Mit LxRunOffline können Sie das Verzeichnis abrufen, das von einer installierten Distribution verwendet wird

# 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

1

Die spätere Version des Linux-Subsystems installiert das Dateisystem unter packagesso dass der vollständige Pfad ungefähr so ​​aussieht:

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

oder:

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

... natürlich abhängig vom Einhängepunkt. Eine Verzeichnissuche nach .bashrcwürde diese Pfade aufdecken ...

Alternativ können Sie readlink .den aktuellen Linux-Pfad in der Linux-Shell als DOS-Pfad in die Windows-Zwischenablage kopieren. Paste irgendwo sinnvoll, um den tatsächlichen physikalischen Pfad zu lesen.


1

Sieht so aus, als hätte Microsoft es noch ein wenig verändert / versteckt. Derzeit ist es bei:

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

Da sich dies in Zukunft möglicherweise noch ändern wird, schlagen PGP lediglich vor, eine Dateisuche nach .profile- oder .bashrc-Dateien durchzuführen.


1

Für WSL2 können Sie vom Windows Explorer aus wie folgt auf das Basisverzeichnis zugreifen:

\\wsl$

Tut mir leid, dass ich zu spät zur Party komme!


1

Ich habe dieses Skript erstellt, das den WLS-Ordner im Explorer öffnet

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

Einfach als yourScript.cmd speichern und ausführen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.