Website-Suche

Physische und Netzwerklaufwerke in WSL2 (Windows-Subsystem für Linux) einbinden


Es gibt mehrere Möglichkeiten, physische, virtuelle oder Netzwerklaufwerke im Windows-Subsystem für Linux (WSL2) bereitzustellen und darauf zuzugreifen. Standardmäßig stellt die WSL-Umgebung alle logischen Windows-Laufwerke bereit

/mnt/

Verzeichnis. Darüber hinaus können Sie über den UNC-Pfad direkt über den Datei-Explorer auf dem Windows-Host auf das WSL-Dateisystem zugreifen

\\wsl$\

(Zum Beispiel,

\\wsl$\ubuntu

).

In dieser Anleitung wird erläutert, wie Sie verschiedene Laufwerke in einer WSL-Umgebung bereitstellen.

So mounten Sie ein physisches Laufwerk (Partition) in WSL2

Das Windows-Subsystem für Linux (WSL 2) ermöglicht das Mounten physischer Laufwerke oder bestimmter Partitionen mit Dateisystemen, die vom Windows-Host selbst nicht unterstützt werden. Der

/proc/filesystems

Die Datei enthält die Liste der unterstützten Dateisysteme in WSL.

Sie verfügen beispielsweise über eine physische Festplatte mit ext4-Partitionen und möchten über WSL darauf zugreifen.

Bevor Sie fortfahren, überprüfen und aktualisieren Sie Ihre WSL 2-Version:

wsl --update

Listen Sie dann die verfügbaren Festplattengeräte in Windows auf:

wmic diskdrive list brief

In diesem Beispiel sind zwei physische Festplatten an den Computer angeschlossen.

Sie können ein komplettes Festplattenlaufwerk in der WSL mounten:

wsl --mount \\.\PHYSICALDRIVE2

Oder nur eine bestimmte Partition:

wsl --mount \\.\PHYSICALDRIVE2 --partition 1

Die Partition der physischen Festplatte wird im Verzeichnis /mnt/wsl/PHYSICALDRIVE2p1 gemountet.

Sie können von einem Windows-Host aus über einen UNC-Pfad auf Dateien auf dieser Partition zugreifen:

\\wsl$\ubuntu\mnt\wsl\PHYSICALDRIVE2p1

Überprüfen Sie, ob in der WSL auf die ext4-Dateisystempartition zugegriffen werden kann:

$ lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT

Führen Sie Folgendes aus, um die Bereitstellung der Partition aufzuheben:

wsl --umount \\.\PHYSICALDRIVE2 --partition 1

Um eine physische Festplattenpartition automatisch bereitzustellen, wenn sich ein Benutzer bei Windows anmeldet, erstellen Sie mit PowerShell eine einfache Planungsaufgabe:

$TaskName="WSL_Mount_DISK1_PART1"
$Trigger= New-ScheduledTaskTrigger -AtLogOn
$Action= New-ScheduledTaskAction -Execute "cmd" -Argument "/c wsl --mount \\.\PHYSICALDRIVE2 --partition 1"
Register-ScheduledTask -TaskName $TaskName -Trigger $Trigger -Action $Action -RunLevel Highest -Force

WSL 2 unterstützt derzeit nicht das Mounten von USB-Laufwerken oder SD-Karten. Um USB-Speichergeräte an WSL anzuschließen, wird die Verwendung des usbipd-win-Pakets empfohlen (ermöglicht die Durchleitung externer USB-Geräte mithilfe des USB-over-IP-Protokolls).

Mounten von Windows-Netzwerklaufwerken in WSL

In WSL können Sie auf freigegebene Ordner auf Netzwerkcomputern oder NAS-Geräten zugreifen. Es gibt zwei Möglichkeiten, Netzlaufwerke in WSL bereitzustellen:

  • Sie können ein Netzlaufwerk bereitstellen, das in Windows zugeordnet ist und dem ein Laufwerksbuchstabe zugewiesen ist.

  • Es ist möglich, den CIFS/SMB-Client in WSL zu verwenden, um einen freigegebenen Netzwerkordner über einen UNC-Pfad bereitzustellen.

Sie haben beispielsweise ein Netzlaufwerk über GPO oder mit zugeordnet

net use X: \\192.168.100.12\tools

Befehl. So greifen Sie über WSL auf dieses Netzlaufwerk zu:

  1. Erstellen Sie einen Mountpunkt:

    $ sudo mkdir /mnt/x
  2. Montieren Sie das Laufwerk:

    $ sudo mount -t drvfs X: /mnt/x
  3. Jetzt können Sie auf Dateien und Ordner auf dem Netzlaufwerk zugreifen.

Um dieses Netzlaufwerk automatisch bereitzustellen, fügen Sie die folgende Zeile zu /etc/fstab hinzu:

X: /mnt/x drvfs defaults 0 0

Hängen Sie dann alle Dateisysteme ein:

$ mount -a

Freigegebene Netzwerkordner können mithilfe des CIFS-Pakets auch direkt von SMB-fähigen Geräten bereitgestellt werden.

$ sudo apt install cifs-utils
$ sudo mount -t cifs -o user={user},pass={password},iocharset=utf8,vers=3.0 //192.168.100.12/tools /mnt/tools

In diesem Beispiel wird das SMB 3.0-Protokoll zum Herstellen einer Verbindung zu freigegebenen Ordnern anstelle von SMBv1 verwendet, das in aktuellen Windows-Versionen standardmäßig deaktiviert ist.

Schließen Sie eine virtuelle Festplatte (VHD/VHDX) in WSL an

Virtuelle VHD/VHDX-Festplatten können auch mit WSL gemountet werden. Wenn das Hyper-V PowerShell-Modul auf dem Computer installiert ist, erstellen Sie mit dem folgenden Befehl eine neue virtuelle Festplattendatei:

New-VHD -Path $env:USERPROFILE\wsl_shared_disk.vhdx -Dynamic -SizeBytes 20GB

Hängen Sie dann die VHDX-Datei in WSL ein:

wsl --mount --vhd $env:USERPROFILE\wsl_shared_disk.vhdx --bare

Jetzt können Sie eine Partitionstabelle und eine Partition mit dem ext4-Dateisystem auf der virtuellen Festplatte erstellen:

$ lsblk
$ sudo parted /dev/sdc print
$ sudo parted /dev/sdc mklabel msdos
$ sudo parted -a optimal /dev/sdc mkpart primary ext4 0% 100%
$ lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdc
$ sudo mkfs.ext4 /dev/sdd1

Anschließend können Sie eine neue Partition anhand ihrer UUID in ein Verzeichnis einbinden:

$ sudo blkid
$ sudo mount UUID=c04d0309-b93a-47f2-ae0d-79c95c80cd51 /home/sysops/vhdx

Mit dieser Methode können Sie die virtuellen Festplatten anderer Linux-Umgebungen, die auf diesem Computer installiert sind, unter WSL mounten. Das Linux WSL-Image-Dateisystem wird im gespeichert

ext4.vhdx

virtuelle Festplatte in der

C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName]

Ordner. Wenn auf dem Systemlaufwerk nicht genügend freier Speicherplatz vorhanden ist, können Sie die VHDX-Datei, die das WSL-Image-Dateisystem enthält, auf ein anderes Laufwerk verschieben.