Ich möchte mein aktuelles Ubuntu- /home
Verzeichnis, das sich auf einer ext4-Partition auf meinem Laufwerk befindet, in WSL mounten.
Im Grunde brauche ich alles von dort und ich möchte eine bessere Kompatibilität mit ext4 und einigen Tools haben. Siehe auchdieses Problemfür einige Beispiele für Probleme beim Bearbeiten von Dateien im vorhandenen WSL-Ubuntu- /home
Verzeichnis.
Ist das möglich? Wie?
Antwort1
Zum Zeitpunkt der Fragestellung war dies in der WSL nicht möglich, da es keinen Zugang zurealext4-Partitionen.
Die in diesem Github-Problem erwähnten Probleme wurden jedoch dadurch behoben, dass über der Zugriff auf das WSL-Dateisystem (damals WSL1, später aber auch WSL2) ermöglicht wurde \\wsl$\<distroname>\
. Dadurch können diese Dateien sicher bearbeitet werden. Siehe auch den entsprechenden Microsoft-Blogbeitrag aus dieser Zeit,Ändern Sie keine Linux-Dateien mit Windows-Apps und -Tools.
Und unter Windows 11 (aber nicht Windows 10) haben Sie jetzt die Möglichkeit, Raw-Laufwerke mithilfe von in WSL2 zu mounten wsl --mount
. Sobald das Raw-Laufwerk für WSL2 verfügbar gemacht wurde, können Sie dann sudo mount
(oder über /etc/fstab
) die eigentliche ext4-Partition auf diesem Laufwerk, die Ihre enthält, öffnen /home/
.
Vorbehalte:
Sie müssen (derzeit) manuell
wsl --mount
die RohpartitionVorStarten einer Distribution (z. B. Ubuntu) in WSL. Wenn Sie dies nicht tun, haben Sie beim Starten von WSL kein/home
und es wird wahrscheinlich einfach fehlschlagen.Wenn ich mich richtig erinnere, können Sie derzeit kein Laufwerk mounten, das bereits in Windows verwendet wird. Die ext4-Partition muss sich also zumindest auf einem anderen Laufwerk als dem Windows-Laufwerk befinden.
Antwort2
Exportieren Sie Ihre Home-Partition mit Samba und mounten Sie diese in Windows (so mache ich das).
/home
Zur Klarstellung: Wenn Sie nicht auf einem Laufwerk mounten möchten , erstellen Sie /home
einen symbolischen Link zu \\yourmachine\home
(vorausgesetzt, Sie haben Ihr Home-Laufwerk als exportiert /home
).
Wenn ich beispielsweise /Documents
auf „ //Bliss/Documents
Unter Cygwin+Bash“ verweise, sehe ich (in meinem Stammverzeichnis):Documents -> //Bliss/Documents/
Unter Windows dir
sieht diese Datei mit folgendermaßen aus: <SYMLINKD> Documents [\\Bliss\Documents]
(Bliss ist ein Name für meinen Server).
Unter Windows erstelle ich dies im Root-Verzeichnis, indem ich mit cd zum Root-Verzeichnis wechsle und dann:
(von Bash aus – beachten Sie die einfachen Anführungszeichen um den Windows-Pfadnamen mit Backslashes)
cmd /c mklink /d Documents '\\Bliss\Documents'