Wenn Sie auf ein Linux-Datenträgerformat zugreifen möchten, das von Windows nicht unterstützt wird, können Sie WSL 2 verwenden, um Ihren Datenträger einzubinden und auf dessen Inhalt zuzugreifen. In diesem Tutorial werden die Schritte zum Identifizieren des Datenträgers und der Partition erläutert, die an WSL 2 angefügt werden sollen, und Sie erfahren, wie Sie sie einbinden und darauf zugreifen.
Wenn Sie ein externes Laufwerk anschließen und mit diesen Anweisungen zur Einbindung keinen Erfolg haben, sollten Sie die Anweisungen zum Verbinden mit USB-Geräten ausprobieren. Der wsl --mount-Befehl unterstützt derzeit keine USB-/Flashlaufwerke/SD-Kartenleser (weitere Informationen zu diesem Problem).
Hinweis
Zum Anfügen eines Datenträgers an WSL 2 ist Administratorzugriff erforderlich.
Der WSL 2-Befehl mount unterstützt das Einbinden eines derzeit verwendeten Datenträgers (oder von Partitionen, die zu dem Datenträger gehören) nicht. wsl --mount fügt immer den gesamten Datenträger an, auch wenn nur eine einzelne Partition angefordert wird. Der Windows-Installationsdatenträger kann nicht eingebunden werden.
Voraussetzungen
Sie müssen mindestens den Windows 11-Build 22000 verwenden oder die Microsoft Store-Version von WSL ausführen. Um Ihre WSL- und Windows-Version zu überprüfen, verwenden Sie den Befehl: wsl.exe --version
Unterschiede zwischen der Einbindung eines externen Laufwerks mit Windows-Formatierung und eines mit Linux-Formatierung
Externe Laufwerke, die für Windows formatiert sind, verwenden in der Regel die NTFS-Dateisystemformatierung. Externe Laufwerke, die für Linux formatiert sind, verwenden in der Regel die ext4-Dateisystemformatierung.
Wenn Sie ein NTFS-formatiertes Laufwerk in Ihr Windows-Dateisystem eingebunden haben, können Sie mithilfe von WSL von Ihrer Linux-Distribution aus auf dieses Laufwerk zugreifen, indem Sie ein eingebundenes Verzeichnis erstellen (sudo mkdir /mnt/d, wobei Sie „d“ durch den gewünschten Laufwerkbuchstaben ersetzen) und dann das Interoperabilitäts-Plug-In des drvfs-Dateisystems mit folgendem Befehl verwenden:
Wenn Sie über ein Ext4-formatiertes Laufwerk verfügen, können Sie es nicht in Ihrem Windows-Dateisystem bereitstellen. Um ein ext4-formatiertes Laufwerk auf Ihrer Linux-Distribution mit WSL einzubinden, können Sie den Befehl wsl --mount gemäß der nachstehenden Anweisungen verwenden.
Einbinden eines nicht partitionierten Datenträgers
Wenn Sie über einen Datenträger ohne Partitionen verfügen, können Sie ihn direkt mithilfe des Befehls wsl --mount einbinden. Zuerst müssen Sie den Datenträger identifizieren.
Identifizieren des Datenträgers: Führen Sie Folgendes aus, um die verfügbaren Datenträger in Windows aufzulisten:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
Die Datenträgerpfade sind unter den Spalten vom Typ „DeviceID“ verfügbar. Sie haben üblicherweise das Format \\.\PHYSICALDRIVE*.
Einbinden des Datenträgers: Mit PowerShell können Sie den Datenträger unter Verwendung des oben ermittelten Datenträgerpfads einbinden. Führen Sie dazu Folgendes aus:
wsl --mount <DiskPath>
Einbinden eines partitionierten Datenträgers
Wenn Sie über einen Datenträger verfügen, bei dem Sie das Dateiformat nicht genau kennen oder nicht genau wissen, über welche Partitionen er verfügt, können Sie die folgenden Schritte zum Einbinden ausführen.
Identifizieren des Datenträgers: Führen Sie Folgendes aus, um die verfügbaren Datenträger in Windows aufzulisten:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
Die Datenträgerpfade werden nach „DeviceID“ aufgelistet und haben üblicherweise das Format \\.\PHYSICALDRIVE*.
Auflisten und Auswählen der Partitionen, die in WSL 2 eingebunden werden sollen: Führen Sie nach der Identifizierung des Datenträgers Folgendes aus:
wsl --mount <DiskPath> --bare
Dadurch wird der Datenträger in WSL 2 verfügbar. (In unserem Beispiel lautet der Laufwerkpfad (<DiskPath>) wie folgt: \\.\PHYSICALDRIVE*.)
Nach dem Anfügen kann die Partition durch Ausführen des folgenden Befehls in WSL 2 aufgelistet werden:
lsblk
Dadurch werden die verfügbaren Blockgeräte und deren Partitionen angezeigt.
Innerhalb von Linux wird ein Blockgerät als /dev/<Device><Partition> identifiziert. „/dev/sdb3“ ist beispielsweise die Partition Nummer 3 des Datenträgers sdb.
Beispielausgabe:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 1G 0 disk
├─sdb2 8:18 0 50M 0 part
├─sdb3 8:19 0 873M 0 part
└─sdb1 8:17 0 100M 0 part
sdc 8:32 0 256G 0 disk /
sda 8:0 0 256G 0 disk
Identifizieren des Dateisystemtyps
Wenn Sie den Dateisystemtyp eines Datenträgers oder einer Partition nicht kennen, können Sie den folgenden Befehl verwenden:
blkid <BlockDevice>
Dadurch wird der erkannte Dateisystemtyp ausgegeben (im Format TYPE="<Filesystem>").
Einbinden der ausgewählten Partitionen
Führen Sie den folgenden Befehl für jede Partition aus, die Sie einbinden möchten:
Wenn Sie den gesamten Datenträger als einzelnes Volume einbinden möchten (sprich: wenn der Datenträger nicht partitioniert ist), kann --partition weggelassen werden.
Wenn die Angabe weggelassen wird, wird standardmäßig der Dateisystemtyp „ext4“ verwendet.
Zugreifen auf den Datenträgerinhalt
Nach der Bereitstellung kann auf den Datenträger unter dem Pfad zugegriffen werden, auf den der Konfigurationswert verweist: automount.root. Der Standardwert ist /mnt/wsl.
Unter Windows kann vom Explorer aus auf den Datenträger zugegriffen werden, indem Sie zu \\wsl$\<Distro>\<Mountpoint> navigieren. (Wählen Sie eine beliebige Linux-Distribution aus.)
Aufheben der Bereitstellung des Datenträgers
Wenn Sie die Bereitstellung aufheben und den Datenträger von WSL 2 trennen möchten, führen Sie Folgendes aus:
wsl --unmount <DiskPath>
Einbinden einer VHD in WSL
Hinweis
WSL aus dem Microsoft Store führt ein neues Argument ein, um eine VHD direkt einzubinden: wsl --mount --vhd <pathToVHD>
Sie können auch virtuelle Festplattendateien (VHD-Dateien) mithilfe von wsl --mount in WSL einbinden. Dazu müssen Sie zunächst den Befehl Mount-VHD unter Windows verwenden, um die VHD in Windows einzubinden. Achten Sie darauf, dass Sie diesen Befehl mit Administratorrechten ausführen. Im Anschluss finden Sie ein Beispiel, in dem dieser Befehl verwendet und auch der Datenträgerpfad ausgegeben wird. <pathToVHD> muss durch den tatsächlichen VHD-Pfad ersetzt werden.
Sie können die obige Ausgabe verwenden, um den Datenträgerpfad für diese VHD zu ermitteln und sie gemäß den Anweisungen aus dem vorherigen Abschnitt in WSL einzubinden.
Mit dieser Technik können Sie auch virtuelle Festplatten anderer WSL-Distributionen einbinden und mit ihnen interagieren, da jede WSL 2-Distribution als virtuelle Festplattendatei mit folgendem Namen gespeichert wird: ext4.vhdx. Standardmäßig werden die VHDs für WSL 2-Distributionen am folgenden Pfad gespeichert: C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName]. Seien Sie vorsichtig, wenn Sie auf diese Systemdateien zugreifen. Hierbei handelt es sich um einen Workflow für Poweruser. Führen Sie wsl --shutdown aus, bevor Sie mit diesem Datenträger interagieren, um sicherzustellen, dass der Datenträger nicht verwendet wird.
Befehlszeilenreferenz
Einbinden eines bestimmten Dateisystems
Standardmäßig versucht WSL 2, das Gerät als „ext4“ einzubinden. Wenn Sie ein anderes Dateisystem angeben möchten, können Sie Folgendes ausführen:
wsl --mount <DiskPath> -t <FileSystem>
Führen Sie beispielsweise Folgendes aus, um einen Datenträger als FAT einzubinden:
wsl --mount <Diskpath> -t vfat
Hinweis
Führen Sie Folgendes aus, um die verfügbaren Dateisysteme in WSL 2 aufzulisten: cat /proc/filesystems
Wenn ein Datenträger über WSL 2 (Linux-Dateisystem) eingebunden wurde, kann er nicht mehr über einen ext4-Treiber im Windows-Dateisystem eingebunden werden.
Bereitstellen einer bestimmten Partition
Standardmäßig versucht WSL 2, den gesamten Datenträger einzubinden. Führen Sie zum Einbinden einer bestimmten Partition Folgendes aus:
wsl --mount <Diskpath> -p <PartitionIndex>
Das funktioniert bei MBR-Datenträgern (Master Boot Record) und bei GPT-Datenträgern (GUID-Partitionstabelle). Informationen zu den Partitionsstilen MBR und GPT finden Sie hier.
Angeben von Einbindungsoptionen
Führen Sie Folgendes aus, um Bereitstellungsoptionen anzugeben:
wsl --mount <DiskPath> -o <MountOptions>
Beispiel:
wsl --mount <DiskPath> -o "data=ordered"
Hinweis
Derzeit werden nur dateisystemspezifische Optionen unterstützt. Generische Optionen wie ro, rw, noatime, ... werden nicht unterstützt.
Anfügen des Datenträgers, ohne ihn einzubinden
Wenn das Datenträgerschema von keiner der oben genannten Optionen unterstützt wird, können Sie den Datenträger an WSL 2 anfügen, ohne ihn zu einzubinden. Führen Sie hierzu Folgendes aus:
wsl --mount <DiskPath> --bare
Dadurch wird das Blockgerät in WSL 2 verfügbar und kann von dort aus manuell eingebunden werden. Verwenden Sie lsblk, um die verfügbaren Blockgeräte in WSL 2 aufzulisten.
Standardmäßig wird der Bereitstellungspunktname basierend auf dem Namen des physischen Datenträgers oder der VHD generiert. Dies kann mit --name außer Kraft gesetzt werden. Beispiel:
wsl --mount <DiskPath> --name myDisk
Trennen eines Datenträgers
Führen Sie Folgendes aus, um einen Datenträger von WSL 2 zu trennen:
wsl --unmount [DiskPath]
Ohne Angabe von Diskpath wird die Einbindung aller angefügten Datenträger aufgehoben, und die Datenträger werden getrennt.
Hinweis
Wenn die Bereitstellung eines Datenträgers nicht aufgehoben werden kann, kann durch Ausführen von wsl --shutdown die Beendigung von WSL 2 erzwungen werden. Dadurch wird der Datenträger getrennt.
Begrenzungen
Derzeit können nur vollständige Datenträger an WSL 2 angefügt werden. Es ist also nicht möglich, nur eine Partition anzufügen. Konkret bedeutet das, dass es nicht möglich ist, mithilfe von wsl --mount eine Partition auf dem Startgerät zu lesen, da dieses Gerät nicht von Windows getrennt werden kann.
Nur Dateisysteme, die nativ im Kernel unterstützt werden, können mithilfe von wsl --mount eingebunden werden. Das bedeutet, dass es nicht möglich ist, installierte Dateisystemtreiber (z. B. „ntfs-3g“) durch Aufrufen von wsl --mount zu verwenden.
Dateisysteme, die nicht direkt vom Kernel unterstützt werden, können über eine Anfügung vom Typ --bare und anschließendes Aufrufen des entsprechenden FUSE-Treibers eingebunden werden.
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu Windows Subsystem for Linux
Windows Subsystem for Linux ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
In diesem Modul erfahren Sie, wie Sie das Windows-Subsystem für Linux (WSL) mit Visual Studio Code (VS Code) verwenden. Wir untersuchen den Installationsprozess und die Grundlagen der Verwendung von WSL. Darüber hinaus installieren und verwenden wir die WSL-Erweiterung von Visual Studio Code. Schließlich zeigen wir, wie Sie Python-Code in VS Code in unserer WSL-Umgebung debuggen und ausgeführen.