Windows 10 WSL: Mount erstellt 9p-Dateisystem anstelle von drvfs

Windows 10 WSL: Mount erstellt 9p-Dateisystem anstelle von drvfs

Ich möchte mein Windows-Laufwerk C: in WSL als drvfs-Dateisystem in /mnt/c mounten, aber wenn ich drvfs als Dateisystemtyp angebe, erhalte ich stattdessen ein 9p-Dateisystem.

Ich habe diese Befehle eingegeben:

$ sudo umount /mnt/c
$ sudo mount -t drvfs C: /mnt/c/
$ mount -l
...
C: on /mnt/c type 9p (rw,relatime,dirsync,aname=drvfs;path=C:;symlinkroot=/mnt/,mmap,access=client,msize=65536,trans=fd,rfd=3,wfd=3)

Wie Sie sehen, ist der Typ 9p anstelle des angegebenen drvfs.

Antwort1

Ja, wenn Sie ein Windows-Laufwerk in WSL Version 2 mounten, wird das 9P-Protokoll verwendet. Dies ist eine große Änderung gegenüber Version 1, die drvfs verwendete. Der WSL-Host betreibt einen 9P-Server, mit dem die WSL-Instanz eine Verbindung herstellt.

Es gibt eine ganze Reihe von Websites, die dieses Thema diskutieren, aber sie sind meiner Meinung nach mit einer Suchmaschine etwas schwer zu finden, da die „größere“ Neuigkeit bezüglich 9P darin bestand, dass jede WSLBeispiel(egal ob WSL1 oder WSL2) hostet auch einen eigenen 9P-Server, mit dem sich der Windows/WSL-Host dann als Client verbinden und Zugriff auf die WSL-Dateien unter dem \\wsl$\<distroname>Pfad gewähren kann.

Hier ist einer der besserenDiskussionen, die ich auf r/bashonubuntuonwindows gefunden habe. Beachten Sie das Zitat von u/benhelioz, einem der WSL-Entwickler (jetzt, glaube ich, der Teamleiter):

Toller Artikel. Ich möchte das ganz klar sagen: Wir sind absolut nicht zufrieden mit der Leistung unseres Windows Drive-Dateizugriffs. Dies ist einer der größten Bereiche, in die wir investieren, und wir arbeiten hart daran, die Leistung zu verbessern. Eine Sache, die ich betonen möchte, ist, dass unser 9p einige Vorteile hat, die Samba und SMB nicht haben. Es ist viel sicherer, unterstützt Administratoren/Nicht-Administratoren und ist vollständig kompatibel mit allem, wofür die Leute DrvFs in WSL1 verwendet haben.

Der offensichtlich unbeantwortete Teil Ihrer Frage ist, warum Sie das Laufwerk nicht direkt als drvfs mounten können. Dies liegt daran, dass WSL-Instanzen keinen direkten Zugriff auf die Hardware haben. Sie verlassen sich auf die WSL-Dienstschnittstelle (LxssManager), um API-Zugriff auf Windows-Elemente bereitzustellen. Wir sind also auf die WSL-Methoden zur Bereitstellung des Zugriffs angewiesen, die im Fall von WSL2- und NTFS-Laufwerken 9P sind.

verwandte Informationen