Wie greife ich mit Windows 10 WSL auf Linux / Ubuntu-Dateien zu?

71

Diese Frage beantwortet, wie man von Ubuntu Bash auf Windows-Dateien zugreift, aber wie kann ich das Gegenteil tun?

Insbesondere muss ich von Windows aus auf meinen SSH-Schlüssel zugreifen, der sich /home/mark/.ssh/id_rsaunter Bash befindet.

mpen
quelle
(Ich habe vorgeschlagen, die verknüpfte Frage von phuclv in umgekehrter chronologischer Reihenfolge zu schließen, da diese Frage sowohl allgemeiner als auch weitaus besser und aktueller zu beantworten ist.)
Bob,

Antworten:

26

PM für Windows Command-Line hier:

Aktualisiert im Oktober 2019 : Die unten stehende Antwort wird aktualisiert , um die neu hinzugefügte Möglichkeit widerzuspiegeln, über den neu integrierten P9-Server in Win10 1903 (und höher) direkt auf die Linux-Dateien von distros zuzugreifen .

WICHTIG : Das Durchsuchen des Windows-Dateisystems, um auf Linux-Dateien zuzugreifen, wurde und wird nicht unterstützt, und es wird DRINGEND davon abgeraten! Um zu verstehen, warum, lesen Sie bitte diesen Beitrag

Wie greift man also mit Windows-Tools (z. B. Editor, VS / VScode usw.) auf Linux-Dateien zu? Bisher war dies nicht möglich, aber ab Windows 10 1903 stellen wir (endlich!) Die Dateisysteme Ihrer Distribution über einen P9-Dateiserver für Windows bereit. Wir haben auch ein ausführliches Video veröffentlicht, in dem erläutert wird, wie dies funktioniert ! Sie können auch eine Zusammenfassung dieser neuen Funktion in diesem Blog-Beitrag lesen

Bildbeschreibung hier eingeben

Freuen Sie sich darauf, zu erfahren, wie Sie mit dieser Funktion vorankommen. Wenn Sie Probleme feststellen, können Sie Probleme mit dem WSL GitHub-Repository hier abspeichern: https://github.com/Microsoft/wsl .

Richard Turner
quelle
Sir, ist diese 9P-Dateiserverfunktion für normale Benutzer stabil? Wenn nicht, ist es möglicherweise besser, eine Warnung zur Verwendung instabiler Insider-Builds hinzuzufügen. Viele Benutzer kennen es möglicherweise nicht. Eine interessante Tatsache, Ihre Antwort enthält Blogs von 2016 und 2019, ~ 3 Jahre;)
Biswapriyo
Oh, das sind aufregende Neuigkeiten !! Ich danke Ihnen für das Teilen!
Mpen
@ biswaprio.it wird in den manuellen Schritten, die man ausführen muss, um dem Insider-Programm beizutreten, SEHR klar gemacht, dass diese Releases buchstäblich wöchentliche Drops der nächsten Windows-Version sind, wenn sie erstellt werden. Und ja, der 9P-Server wird für allgemeine Benutzer in der Mainstream-Betriebssystemversion, in der er ankommt, stabil sein. Und ja, die Tatsache, dass wir so lange gebraucht haben, um eine anständige Lösung zu entwickeln und zu liefern, sollte Ihnen eine Vorstellung davon geben, wie schwierig es für unser kleines Team ist, Prioritäten zu setzen und zu konstruieren.
Richard Turner
1
Ich habe diesen Befehl von Ubuntu mit jedem Update meines Systems ausprobiert, seit ich das erste Mal davon gehört habe. Mein Explorer wechselt immer in den Ordner "Dokumente". Und ich habe noch keine Schritte herausgefunden , um diese Funktion zu "aktivieren".
Axeman
3
Ähnliche Situation wie Axeman, wenn ich explorer.exe .es starte, öffnet sich der System32-Ordner. @RichardTurner Wo sind die manuellen Schritte?
Chris
57

Der Speicherort wurde in der neuesten Version tatsächlich verschoben in:

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\

Siehe diese GitHub-Ausgabe von Microsoft / WSL # 2578

Wie oben in der Ausgabe und in den Kommentaren unten erwähnt, sollten Sie sich nicht mit diesen Dateien aus dem Windows-Betriebssystem herumschlagen.

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

drew7721
quelle
1
Vielen Dank! Ich dachte, ich wäre verrückt geworden, wenn ich versucht hätte, den alten Anweisungen zu folgen, aber ich hatte nicht einmal einen lxss-Ordner.
Alex S
1
Stimmt diese Information noch? Ich kann einen solchen Ordner auf meinem Windows 10 nicht finden.
Bruno Finger
6
WIR EMPFEHLEN DRINGEND, DASS SIE NICHT UNTER WINDOWS IN DIE DISTRO ROOT-ORDNER SPELUNKEN. WENN SIE dies tun, VERLUST UND / ODER KORRUPITION VON DATEN HOCHWERTIG: Bitte lesen Sie diesen Beitrag für weitere Details: blogs.msdn.microsoft.com/commandline/2016/11/17/…
Richard Turner
1
"Ich bezweifle, dass jemand versuchen würde, Dateien auf diese Weise zu manipulieren oder zu ändern". Warum habe ich wohl den obigen Rat geschrien? Wir hören von Leuten, die diesen Rat mehrmals in der Woche ignoriert oder nicht gelesen haben und am Ende die Dateien in ihren Stammordnern beschädigen. Es gibt Tools, die Ihre (Beta) -Distros-Dateien ersetzen, die dies ebenfalls häufig verursachen.
Richard Turner
1
Ich habe in einem Ordner gesucht, den ich über Ubuntu WSL im Explorer erstellt hatte, und dadurch wurden die Berechtigungen irreversibel verletzt ... also ja, ich würde dies nicht empfehlen!
SamAndrew81
9

Ich habe es gefunden, indem ich mein gesamtes C-Laufwerk durchsucht habe. Dateien sind hier:

C:\Users\<username>\AppData\Local\lxss

zB ist mein SSH-Schlüssel hier:

C:\Users\Mark\AppData\Local\lxss\home\mark\.ssh\id_rsa
mpen
quelle
2
Es scheint, dass sich der Pfad seit dem offiziellen FCU-Update geändert hat.
Briefkasten
1
@Briefkasten Ich habe gerade auf FCU aktualisiert und meine Dateien sind noch da. Erstellt eine neue Datei unter Bash, nur um sicherzugehen. Hast du ein WSL-Upgrade oder so?
24.
2
@ John D Die WSL befindet sich im Paketordner, in dem die App installiert wird. Für mich ist es: C: / Users / {username} /AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState/rootfs/ Cont. zu github.com/Microsoft/WSL/issues/402#issuecomment-321853125
Briefkasten
9

Ja, es wird jedoch nicht empfohlen, diesen Ordner über den Windows-Explorer zu bearbeiten. Wenn Sie Dateien aus dem lxss-Ordner kopieren, verschieben, bearbeiten oder löschen möchten, müssen Sie dies in bash mit Befehlszeilentools tun. Nur Dateien, die sich in / mnt / * befinden, können im Windows-Explorer wirklich bearbeitet werden.

Onoma
quelle
1
Auch einfache Textdateien? Was sind die Tücken?
8.
3
Jede Datei, die sich in einem Volfs-Ordner befindet (wie / home), verfügt über erweiterte Attribute, in denen die Linux-Berechtigungen dieser Datei gespeichert sind. Wenn Sie diese Datei in einem Windows-Editor bearbeiten, gehen diese Attribute verloren und die Datei verschwindet aus der Bash. Weitere Informationen
onoma
4
Klingt so, sollte ein Fehler sein. Windows sollte uns entweder keinen Zugriff auf diese Dateien oder nur Lesezugriff gewähren, oder sie sollten die Schreibaufrufe auf die Linux-Dateien abfangen und nur die Attribute nicht ändern. Danke für den Tipp. Ich wollte nur die Dateien lesen, also ist das hoffentlich kein Problem.
8.
5

In powershell, Verwendung

cd ${env:appdata}\..\local\packages\canonical*\localstate\rootfs

dann

ls

gibt die gleiche Liste von Ordnern zurück wie

ls / 

innerhalb von Bash auf WSL.

masterxilo
quelle
4

Wie bereits erwähnt, haben [onoma] -Dateien in WSL-Verzeichnissen Attribute, die verloren gehen, wenn man sie mit dem Explorer oder einem Texteditor bearbeitet, der unter Windows ausgeführt wird. Die Lösung könnte darin bestehen, ssh-server in WSL zu starten (möglicherweise ist eine Neuinstallation erforderlich), auf localhost zu lauschen und dann das WSL-Dateisystem als Laufwerk mit z. B. win-sshfs anzuhängen, oder Sie können einfach den Bitvise-SSH-Client verwenden, um eine Verbindung über ssh herzustellen und manipulieren Dateien von SFTP-Fenster. Das Thema wurde hier teilweise besprochen: Wie kann ich SSH in "Bash unter Ubuntu unter Windows 10" einbinden?

Shamar
quelle
3

subst L: $env:LOCALAPPDATA\lxss (für Powershell)

oder subst L: %LocalAppData%\lxss(von cmd)

Dadurch wird Ihr Linux-Subsystem-Dateisystem-Root /auf Ihrem L: -Laufwerk gespeichert.

Sie können auch nur Ihr Home-Verzeichnis zuordnen oder einfach %LocalAppData%\lxssin einem Explorer-Fenster blättern . Versuchen Sie einfach nicht, L: \ mnt \ c zu durchsuchen, da Ihr Gehirn sonst explodieren könnte.

Cheezmeister
quelle
3
Schöne lösung! Für aktuelles Windows 10 ist es Subst. L: $ env: LOCALAPPDATA \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs
Andreas M. Oberheim
3

Ich habe es endlich geschafft, den Explorer (und vscode) mit dem richtigen Ordnerkontext aus der WSL heraus zu öffnen: https://github.com/andymule/wslwin

Zum Beispiel, nachdem Sie diese installieren, in Linux (WSL) würden Sie gerade cd /home/mark/.ssh/und Art explorer, und es würde öffnen Fenster an dieser Stelle explorer, was auch immer es ist.

BEARBEITEN: Diese Funktion wird in der WSL jetzt offiziell unterstützt und Sie sollten meine Skripte nicht mehr verwenden

andymule
quelle
2

Ich bin auf Windows 10 Creators Update. Ich verwende SFTP NetDrive, um das WSL-Dateisystem als Netzwerklaufwerk in Windows einzubinden.

Es gibt einige Windows sshFS-Ports, die dasselbe erreichen.

Sie müssen den ssh-Daemon über "sudo service ssh start" starten

mliang2
quelle
Was ist der Vorteil davon gegenüber dem direkten Zugriff auf die Dateien?
1.
An die Dateien sind Metadaten angehängt, die möglicherweise verloren gehen, wenn Sie direkt auf Anwendungen zugreifen, die die Metadaten nicht verstehen.
mlk
0
\\wsl$\Ubuntu\home\user\whatever 

Im Explorer oder im Run-Widget (Cmd + R). Funktioniert wie eine normale Netzwerkfreigabe und es ist sicher, Dateien zu manipulieren.

Sie können es wie jede andere Netzwerkfreigabe auch einem Laufwerk oder Ordner zuordnen.

Hinweis: Dies ist eine neue Funktion, die in Windows 10 Build 18342 implementiert ist

runlevel0
quelle