Frage Wo ist das Root-Verzeichnis des Ubuntu-Dateisystems im Windows-Subsystem für Linux und umgekehrt?


Ich habe das Ubuntu-Subsystem auf Windows 10 installiert (nachdem die Funktion in den Einstellungen aktiviert wurde), aber wo befindet sich das Stammverzeichnis des Ubuntu-Dateisystems im Laufwerk?


299
2018-04-21 10:06


Ursprung


BITTE BEACHTEN SIE  Wir (das WSL-Team) DRINGEND empfehlen, dass Sie NICHT in die Linux Distro-Datenordner spelken ). Wenn Sie dies tun, ist Datenverlust und / oder Korruption sehr wahrscheinlich. Wir arbeiten an der Verbesserung dieses Interop-Szenarios und werden jeden Fortschritt in unserem Blog ankündigen: blogs.msdn.microsoft.com/commandline - Rich Turner
@RichTurner Ich habe festgestellt, dass es einen sehr spezifischen (und ärgerlichen) Grund gibt - Unternehmensrichtlinien, die den .ssh-Ordner mit den falschen Berechtigungen markieren, bedeutet immer wieder, dass die Struktur als "off-limits" für die Unternehmensskripte markiert werden muss. Aber generell - ich stimme dir zu. - Danny Staple
Obwohl es auf Boxen mit neueren Updates aussieht - das passiert nicht mehr. - Danny Staple
@DannyStaple Wenn Sie die Berechtigungen für Dateien / Ordner in Ihrer Linux Distribution von Windows ändern müssen, verwenden Sie wsl.exe, z.B. wsl chmod 600 ~/.ssh/id* - machen nicht Kopieren Sie Dateien in diese Ordner über das Windows-Dateisystem. - Rich Turner


Antworten:


Für Ubuntu aus dem Windows-Store installiert:

Jede Distribution, die Sie über den Store installieren, wird darauf installiert   Appdata-Verzeichnis der Anwendung. Beispielsweise:    C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState  - Benhillis

In früheren Iterationen von Windows Subsystem für Linux war das Ubuntu-Dateisystem bei %localappdata%\Lxss (z.B., C:\Users\Username\AppData\Local\Lxss - ersetze das Nutzername mit Ihrem Benutzernamen unter Windows). Sehen der WSL-Blogbeitrag zum Dateisystem-Support:

Das von der WSL verwendete primäre Dateisystem ist VolFs. Es dient zum Speichern der   Linux-Systemdateien sowie den Inhalt Ihres Linux-Heims   Verzeichnis. Daher unterstützt VolF die meisten Funktionen des Linux VFS   bietet Linux-Berechtigungen, symbolische Links, FIFOs, Sockets,   und Gerätedateien.

VolFs wird verwendet, um das VFS-Stammverzeichnis mithilfe von zu mounten    %LocalAppData%\lxss\rootfs als Hintergrundspeicher. Darüber hinaus   Es gibt einige zusätzliche VolFs-Mount-Punkte, vor allem /root und    /home die mit verwendet werden %LocalAppData%\lxss\root und    %LocalAppData%\lxss\home beziehungsweise. Der Grund für diese trennen   mounts ist, dass wenn Sie WSL deinstallieren, die Home-Verzeichnisse nicht sind   standardmäßig entfernt, so dass alle persönlichen Dateien gespeichert werden   konserviert.

VORSICHT

Das Erstellen / Ändern von Dateien im Linux-Subsystem mithilfe von Windows-Apps und -Tools kann zu Datenbeschädigung und Datenverlust im Ubuntu-Subsystem führen! (Dank an Rich Turner um diese Worte der Vorsicht zu empfehlen!) Das ist absolut nicht unterstützt. Aus demselben Blogpost:

Interoperabilität mit Windows

Während VolFs Dateien in regulären Dateien unter Windows in der   oben genannten Verzeichnissen ist die Interoperabilität mit Windows nicht gegeben   unterstützt. Wenn eine neue Datei zu einem dieser Verzeichnisse hinzugefügt wird   Windows, es fehlen die EAs, die von VolFs benötigt werden, also weiß VolFs nicht was   mit der Datei zu tun und ignoriert sie einfach. Viele Redakteure werden auch   Entfernen Sie die EAs beim Speichern einer vorhandenen Datei und erstellen Sie die Datei erneut   unbrauchbar in WSL.


Ihr Windows-Dateisystem befindet sich unter /mnt/c in der Bash-Shell-Umgebung.

enter image description here

Quelle: Dustin Kirklands Blog, Howtogeek


322
2018-04-21 10:34



Lxss war auf meinem Dateisystem versteckt ... verursachte ein bisschen Kopf kratzen für eine ärgerliche Minute oder zwei. Jetzt habe ich eine Verknüpfung erstellt, aber ich kann sie immer noch nicht einblenden. - Ogaday
@Ogaday Sie können es nicht mithilfe des Eigenschaftenfensters einblenden, da es als Systemverzeichnis markiert ist. Sie können es mit einblenden attrib -s -h lxss Dadurch wird es auch als Systemverzeichnis entfernt. - developerbmw
Es sieht so aus, als ob sich der Standort zwischen den Systemen entweder geändert hat oder anders ist, da sich mein Standort an einem anderen Ort befindet. Ich habe unten mit meinem Standort gepostet. - NicholasJohn16
@souravc Könnten Sie bitte eine wichtige Anmerkung an den Anfang Ihrer Antwort hinzufügen, die dringend empfiehlt, keine Dateien in LXSS mit Windows-Apps und -Tools zu erstellen / zu ändern: Datenkorruption und -verlust sind sehr wahrscheinlich, wenn Sie dies tun! - Rich Turner
Bitte lesen Sie den oben genannten Beitrag: blogs.msdn.microsoft.com/commandline/2016/11/17/ .... Es ist sicher, von der WSL aus auf das Windows-Dateisystem zuzugreifen, weshalb wir Ihre Laufwerke unter installieren /mnt/<drive>/, ist aber (noch) NICHT sicher, von Windows auf Linux-Dateisystem zuzugreifen, weshalb wir keinen einfachen Zugriff auf die Distro-Dateisysteme bieten. - Rich Turner


Dies scheint sich seit der Einführung von Bash geändert zu haben und gilt nicht für Distributionen aus dem Windows Store oder ist möglicherweise nicht für alle Systeme konsistent, da sich mein Basisverzeichnis an einem anderen Ort befindet:

%localappdata%\lxss\home\{username}

oder:

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

Woher {user} ist Ihr Windows-Benutzername und {username} Ist Ihr UNIX-Benutzername während der Installation festgelegt?

Das Wurzelverzeichnis wäre also:

%localappdata%\lxss

Beachten Sie, dass das Stammverzeichnis möglicherweise nicht in Windows Explorer von angezeigt wird %localappdata% Verzeichnis. Sie sollten trotzdem darauf zugreifen können, indem Sie es in der Adressleiste des Explorers eingeben.


45
2017-08-10 18:35



Mein Computer findet nicht: "C: \ Benutzer \ {Benutzer} \ AppData \ Local \ Lxss \ {Benutzername}" oder "% localappdata% \ Lxss \ home \ {Benutzername}", aber "C: \ Benutzer \ {Benutzer } \ AppData \ Local \ lxss \ {Benutzername} "funktioniert. I.E. benutze "lxss" NICHT "Lxss" - Joe Codeswell user601770
Mein System hat das Unterverzeichnis rootfs, aber rootfs / home ist leer, während ./home mein Benutzerkonto und Dateien hat. Es scheint am sichersten zu sein, einfach zu% localappdata% \ lxss zu gehen und dann von dort aus zu erkunden, welches Layout du hast, und direkt zu dieser Adresse zu navigieren vermeidet Probleme mit dem lxss-Verzeichnis, das versteckt ist. - jla
@ JoeCodeswelluser601770 Das ist seltsam. Windows-Dateisysteme berücksichtigen normalerweise nicht die Groß- und Kleinschreibung. Ich kann% localappdata% \ Lxss oder% localappdata% \ lxss eingeben und beide gehen zu% HOMEPATH% \ AppData \ Local \ lxss - jla
Beachten Sie, dass dieser Ordner (lxss) nicht in meiner Windows Explorer-Liste der Ordner in AppData \ Local angezeigt wurde, auch wenn die Ansicht für versteckte Ordner aktiviert ist. Ich musste manuell den Ordner lxss in die Explorer-Leiste einfügen, um hier zu den Dateien zu gelangen, z. bearbeite den Ordner "url" dort - Colin D
Alternativ können Sie auf den Desktop gehen, mit der rechten Maustaste auf "Neu -> Verknüpfung" klicken und einen Pfad wie C: \ Benutzer \ IhrName \ AppData \ Local \ lxss \ home \ Ihrname einfügen - Colin D


Wenn Sie Linux von MS Market installieren:

sie platzierten distros unter:

$ 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

Standardverteilung definiert durch:

bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution
{861c29b4-ebe2-49a5-8a22-7e53a27934a0}

Linux-Wurzel ist tiefer:

c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs

PS. Ich habe Cygwin benutzt, um Registrierungsschlüssel zu erforschen.

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


9
2017-09-13 14:54





Das einzige was für mich funktionierte war %localappdata%\lxss\home\{username}, bei dem die {username} ist Ihr BASH-Benutzername, den Sie bei der Installation angegeben haben. Aus irgendeinem Grund, nach dem Anzeigen der versteckten Ordner lxss weigert sich in angezeigt zu werden C:\Users\WINDOWS-USER\AppData\Local\und auch das volle geben C:\ Pfad mit Windows und BASH Benutzername funktioniert auch nicht.

Und bitte erstellen Sie eine Desktop-Verknüpfung für was funktioniert.


5
2018-06-09 17:02



Wow, guter Tipp, hatte das gleiche Problem - Nicolas Mommaerts


Sie können Bash schnell aus einem Datei-Explorer-Fenster des geöffneten Ordners öffnen, indem Sie eingeben bash in der Adressleiste.

Es ist genug.

Sie können auch einen Kontextmenüeintrag hinzufügen. Ich persönlich empfehle es nicht, wenn es nicht benötigt wird, da das Hinzufügen von Verknüpfungen zum Kontextmenü mehr RAM benötigt.

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


4
2018-02-21 20:19



Funktioniert nicht für mich. Es öffnet die Eingabeaufforderung und startet bash. - blablatros
@blablatros ja aber im Ordner in Bash in der Sie Explorer geöffnet hatte, wenn Sie in Explorer Bar Bash schreiben und drücken Sie Enter. Versuchen Sie im Ordner Eigene Dateien geöffnet Windows Explorer-Ordner und in der Adressleiste schreiben bash und es wird ubuntu bash in diesem Ordner bereits geöffnet :) - Kangarooo
@Kangarooo: Ich möchte auf die Dateien über die Windows 10 GUI zugreifen und umgekehrt. In meiner Antwort oben habe ich herausgefunden, wie man das bash-Verzeichnis über den Windows 10-Datei-Explorer findet, und so fuhr ich fort, einige Dateien von meiner externen Festplatte in dieses Verzeichnis zu kopieren. Allerdings, als ich das Bash-Terminal öffnete und drückte ls -aDie Dateien, die ich hinzugefügt habe, wurden nicht angezeigt. Bash erkannte die Dateien nicht, die ich über den Windows-Datei-Explorer eingab, was für mich den Grund für die Installation von bash unter Windows komplett zunichte gemacht hat. - thinksinbinary