Einbinden eines Linux-Datenträgers in WSL 2
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:
sudo mount -t drvfs D: /mnt/d
Weitere Informationen zu Einbindungsszenarien.
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:
wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
Hinweis
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.
Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)"
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.
Angeben des Einbindungsnamens
Hinweis
Diese Option ist nur mit WSL aus dem Microsoft Store verfügbar.
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 vonwsl --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.
Windows Subsystem for Linux