Монтирование физических, виртуальных и сетевых дисков в WSL2 (Windows Subsystem for Linux)

Windows Subsystem for Linux (WSL) предоставляет ряд удобных возможности подключения физических, виртуальных и сетевых дисков. По умолчанию в среде wsl в каталог /mnt/ монтируются все логические диски, которые доступны в Windows. Кроме того, вы можете прямо из проводника Windows обратиться к файловой системе WSL по UNC пути \wsl$ (например, \wsl$ubuntuetc ).

В этой статье мы рассмотрим, как смонтировать различные типы дисков в среде WSL.

Монтирование физических дисков Windows Subsystem for Linux 2

Новая версия Windows Subsystem for Linux (WSL 2) позволяет монтировать физические диски, или отдельные разделы с файловыми системами, которые не поддерживаются в Windows (список поддерживаемых файловых систем содержится в файле /proc/filesystems ).

Например, у вас есть физический на которым созданы разделы с файловой системой диск ext4, и вы хотите получить к нему доступ из WSL и Windows.

Обновите свою версию WSL 2, прежде чем двигаться дальше:

wsl --update

Теперь нужно вывести список доступных дисковых устройств в Windows:

wmic diskdrive list brief

В этом примере к компьютеру подключены два физических диска.

Можно смонтировать в WSL диск целиком:

wsl --mount \.PHYSICALDRIVE2

Или только определенный раздел:

wsl --mount \.PHYSICALDRIVE2 --partition 1

Раздел физического диска был успешно смонтирован в директорию /mnt/wsl/PHYSICALDRIVE2p1.

Вы можете получить доступ к файлам на этом разделе из Windows по UNC пути \wsl$ubuntumntwslPHYSICALDRIVE2p1 .

Проверьте, что раздел диска с файловой системой ext4 доступен в WSL:

lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT

Чтобы отмонтировать диск, выполните:

wsl --umount \.PHYSICALDRIVE2 --partition 1

Для автоматического монтирования раздела физического диска при входе пользователя в Windows, создайте с помощью PowerShell простое задание планировщика :

$TaskName="WSL_Mount"
$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 не поддерживает монтирование USB накопителей и SD карт. Для проброса USB накопителей в WSL рекомендуется использовать пакет usbipd-win , который позволяет реализовать проброс устройств с помощью протокола USB over IP.

Как подключить (смонтировать) сетевой диск в WSL

Из WSL вы можете получить доступ к общим сетевым папкам или NAS устройствам.

Есть два способа подключения сетевых дисков в WSL:

  • Можно смонтировать сетевой диск, подключенный в Windows и которому назначена буква диска
  • Смонитировать сетевую папку по UNC пути с помощью CIFS/SMB клиента в WSL.

Допустим, вы подключили сетевую папку в виде диска с помощью команды net.exe use X: \192.168.31.102tools или подключили сетевой диск через GPO . Чтобы получить доступ к этому сетевому диску из WSL нужно:

  1. Создать точку монтирования: $ sudo mkdir /mnt/x
  2. Смонтировать диск: $ sudo mount -t drvfs X: /mnt/x
  3. Теперь вы можете получить доступ к файлам и папкам на сетевом диске.

Чтобы автоматически монтировать этот сетевой диск, добавьте следующую строку в /etc/fstab:

X: /mnt/x drvfs defaults 0 0

Затем смонтируйте все файловые системы:

$ mount -a

Также можно смонтировать сетевые папки через пакет CIFS:

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

В данном примере мы явно указали что для подключения нужно использовать протокол SMB 3.0. По умолчанию используется SMBv1, который отключен в современных версиях Windows .

Смонтировать виртуальный VHD/VHDX диск в WSL

WSL позволяет смонтировать виртуальные диски в форматах VHD/VHDX.

Если на компьютере установлен роль или PowerShell модуль Hyper-V , вы можете создать новый виртуальный диск с помощью команды:

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

Затем смонтируйте виртуальный VHDX диск в WSL:

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

Теперь вы можете создать на виртуальном диске таблицу разделов и раздел с файловой системой ext4:

$ 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

Чтобы смонтировать новый раздел в определенную директорию, нужно получить его UUID;

$ sudo blkid
$ sudo mount UUID= 506f6faa-1f50-4763-b8a1-975f2b1c59fe /home/sysops/vhdx

Этот способ позволит смонтировать виртуальные диски других сред Linux, которые установлены на этом компьютере под WSL. Файловая система образов Linux WSL хранится в виртуальных дисках ext4.vhdx в папке C:Users[user]AppDataLocalPackages[distro]LocalState[distroPackageName] . Если на системном диске недостаточно места, можно перенести vhdx файл с файловой системой образа WSL на другой диск .
admin

Share
Published by
admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

12 часов ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

12 часов ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

12 часов ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

12 часов ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

12 часов ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

12 часов ago