WSL2: Монтирование диска
С выходом Windows 11, WSL 2 обзавелась новой фитчей - монтирование физических носителей. Это дает возможность очень просто подключить к Windows физический диск, например в формате ext4, безо всяких драйверов и танцев с бубном. На нем можно хранить свои рабочие проекты и при необходимости использовать этот диск на физической Linux машине.
Я использую эту фитчу, что бы хранить реальные проекты на своем SSD в пол терабайта. При необходимости, я переключаюсь на Linux и обратно без лишних операций, ведь Windows не поддерживает нативно ext4. И в этом видео я покажу как настроить и смонтировать физический диск в формате ext4 к WSL так же как у меня.
Для того что бы это провернуть, нам понадобится Windows 11 с минимальным билдом 22000, свободный накопитель в формате ext4 и обновленный WSL.
Допустим Вы нашли диск и подключили, но он не содержит разделов. Запустите powershell с привиллегиями администратора и обновите WSL что бы убедиться, что монтирование поддерживается.
wsl --update
Теперь нужно определить путь устройства на Windows.
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
У меня это чистый \.\PHYSICALDRIVE1 размером 500GB, его я и буду монтировать к WSL с помощью опции mount. Если у вас диск готов к использованию, то пропустите шаги разбиению и форматированию диска.
wsl --mount \\.\PHYSICALDRIVE1
Теперь получим список устройств хранения и создадим раздел на новом диске с помощью parted
lsblk
sudo parted /dev/sda
В parted укажите таблицу msdos и создайте основной раздел ext4 на весь диск.
mktable msdos
mkpart primary ext4 0% 100%
print
quit
Посмотрим что получилось и выйдем, если все хорошо.
Теперь lsblk покажет новый раздел на устройстве. Укажем его для утилиты mkfs.ext4 и выйдем из WSL
lsblk
sudo mkfs.ext4 /dev/sda1
exit
Теперь необходимо демонтировать наш диск и смонтировать заново указав созданный раздел номер 1
wsl --unmount \\.\PHYSICALDRIVE1
wsl --mount \\.\PHYSICALDRIVE1 --partition 1
Зайдем обратно в WSL и убедимся что раздел смонтирован правильно. В директории /mnt/wsl/ должна быть директория с суффиксом p1
ll /mnt/wsl/
Я нашел такое размещение раздела не очень удобным, поэтому давайте добавим запись в /etc/fstab что бы привязать /mnt/wsl/PHYSICALDRIVE1p1 прямо в директорию projects домашней директории. Для этого создадим директорию ~/projects, изменим владельца директории /mnt/wsl/PHYSICALDRIVE1p1, отредактируем /etc/fstab и проверим что все работает смонтировав диск и создав тестовый файл на нем. Этот файл должен появиться в директории ~/projects
mkdir ~/projects
sudo chown zource:zource /mnt/wsl/PHYSICALDRIVE1p1
sudo nano /etc/fstab
/mnt/wsl/PHYSICALDRIVE1p1 /home/zource/projects none defaults,bind 0 0
touch /mnt/wsl/PHYSICALDRIVE1p1/test
sudo mount -a
ll ~/projects/
Что бы каждый раз не монтировать вручную свой диск, давайте добавим задачу в планировщик.
schtasks /create /tn "\WSL\Mount" /sc onlogon /ru Users /np /rl highest /f /tr "cmd /c wsl --mount \\.\PHYSICALDRIVE1 --partition 1"
schtasks /run /tn "\WSL\Mount"
schtasks /delete /tn "\WSL\Mount"
Краткое описание и необходимые команды можно найти по ссылке под видео. Если у вас возникли какие-то проблемы или вы хотите услышать о чем то подробнее, напишите об этом в коментариях.
Вы были на канале zource dev. Поставьте лайк и подпишитесь на канал что бы не пропустить следующий выпуск.