Montowanie dysków fizycznych i sieciowych w WSL2 (podsystem Windows dla systemu Linux)

Istnieje kilka sposobów montowania dysków fizycznych, wirtualnych lub sieciowych i uzyskiwania do nich dostępu w podsystemie Windows dla systemu Linux (WSL2). Domyślnie środowisko WSL montuje wszystkie dyski logiczne systemu Windows w pliku/mnt/informator. Ponadto można uzyskać dostęp do systemu plików WSL bezpośrednio z Eksploratora plików działającego na hoście z systemem Windows, korzystając ze ścieżki UNC\wsl$(Na przykład,\wsl$ubuntu).

W tym przewodniku wyjaśniono, jak montować różne dyski w środowisku WSL.

Zawartość:

Jak zamontować dysk fizyczny (partycję) w WSL2

Podsystem Windows dla systemu Linux (WSL 2) umożliwia montowanie dysków fizycznych lub określonych partycji z systemami plików, które nie są obsługiwane przez sam host systemu Windows. The/proc/filesystemsplik zawiera listę obsługiwanych systemów plików w WSL.

Na przykład masz dysk fizyczny z partycjami ext4 i chcesz uzyskać do nich dostęp z poziomu WSL.

Przed kontynuowaniem sprawdź i zaktualizuj wersję WSL 2:

wsl --update

Następnie wyświetl listę dostępnych urządzeń dyskowych w systemie Windows:

wmic diskdrive list brief

W tym przykładzie do komputera podłączone są dwa dyski fizyczne.

Zalecana lektura:Rozpocznij pracę z Dockerem w systemie Windows (WSL2) bez Docker Desktop

W WSL można zamontować cały dysk twardy:

wsl --mount \.PHYSICALDRIVE2

Lub po prostu konkretną partycję:

wsl --mount \.PHYSICALDRIVE2 --partition 1

Partycja fizycznego dysku twardego zostanie zamontowana w katalogu /mnt/wsl/PHYSICALDRIVE2p1.

Dostęp do plików na tej partycji można uzyskać z hosta Windows, korzystając ze ścieżki UNC:\wsl$ubuntumntwslPHYSICALDRIVE2p1.

Sprawdź, czy partycja systemu plików ext4 jest dostępna w WSL:

$ lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT

Aby odmontować partycję, uruchom:

wsl --umount \.PHYSICALDRIVE2 --partition 1

Aby automatycznie montować partycję dysku fizycznego, gdy użytkownik loguje się do systemu Windows, utwórz proste zadanie harmonogramu za pomocą programu PowerShell:

$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 nie obsługuje obecnie montażu dysków USB ani kart SD. Aby podłączyć urządzenia pamięci USB do WSL, zaleca się użycieusbipd-winpakiet (umożliwia przesyłanie zewnętrznych urządzeń USB przy użyciu protokołu USB over IP).

W WSL możesz uzyskać dostęp do folderów współdzielonych na komputerach sieciowych lub urządzeniach NAS. Istnieją dwa sposoby montowania dysków sieciowych w WSL:

  • Można zamontować dysk sieciowy zamapowany w systemie Windows i mający przypisaną literę dysku.
  • Możliwe jest użycie klienta CIFS/SMB w WSL do zamontowania udostępnionego folderu sieciowego przy użyciu ścieżki UNC.

Na przykład zamapowałeś dysk sieciowy przy użyciu obiektu GPO lub plikunet use X: \192.168.100.12toolsrozkaz. Aby uzyskać dostęp do tego dysku sieciowego z WSL:

  1. Utwórz punkt montowania:$ sudo mkdir /mnt/x
  2. Zamontuj dysk:$ sudo mount -t drvfs X: /mnt/x
  3. Teraz możesz uzyskać dostęp do plików i folderów na dysku sieciowym.

Aby automatycznie zamontować ten dysk sieciowy, dodaj następujący wiersz do/etc/fstab:

X: /mnt/x drvfs defaults 0 0

Następnie zamontuj wszystkie systemy plików:

$ mount -a

Udostępnione foldery sieciowe można także montować bezpośrednio z urządzeń obsługujących SMB przy użyciu pakietu CIFS.

$ 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

W tym przykładzie do łączenia się z folderami współdzielonymi używany jest protokół SMB 3.0 zamiast protokołu SMBv1, który jest domyślnie wyłączony w bieżących wersjach systemu Windows.

Podłącz wirtualny dysk twardy (VHD/VHDX) w WSL

Wirtualne dyski twarde VHD/VHDX można również montować za pomocą WSL. Jeżeli na komputerze zainstalowany jest moduł Hyper-V PowerShell, utwórz nowy plik dysku wirtualnego za pomocą polecenia:

New-VHD -Path $env:USERPROFILEwsl_shared_disk.vhdx -Dynamic -SizeBytes 20GB

Następnie zamontuj plik VHDX w WSL:

wsl --mount --vhd $env:USERPROFILEwsl_shared_disk.vhdx --bare

Teraz możesz utworzyć tablicę partycji i partycję z systemem plików ext4 na dysku wirtualnym:

$ 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

Następnie możesz zamontować nową partycję w katalogu według jej UUID:

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

Korzystając z tej metody, będziesz mógł zamontować wirtualne dyski twarde innych środowisk Linux, które są zainstalowane na tym komputerze w ramach WSL. System plików obrazu Linux WSL jest przechowywany w formacieext4.vhdxdysk wirtualny wC:Users[user]AppDataLocalPackages[distro]LocalState[distroPackageName]falcówka. Jeśli na dysku systemowym nie ma wystarczającej ilości wolnego miejsca, możesz przenieść plik VHDX zawierający system plików obrazu WSL na inny dysk.

Related Posts