Подключение диска Linux в WSL 2
Если вы хотите получить доступ к формату диска Linux, который не поддерживается Windows, можно использовать WSL 2 для подключения диска и доступа к его содержимому. В этом руководстве описаны действия по идентификации диска и раздела для подключения к WSL2, их подключению и доступу к ним.
Если вы подключаете внешний диск и не имеете успеха с этими инструкциями по подключению, попробуйте выполнить инструкции по подключению USB-устройств. В wsl --mount
настоящее время команда не поддерживает usb/флэш-накопители или средства чтения SD-карт (дополнительные сведения об этой проблеме).
Примечание.
Для подключения диска к WSL 2 требуется доступ администратора.
Команда WSL 2 mount
не поддерживает подключение диска (или секций, принадлежащих к диску), которые сейчас используются. wsl --mount
всегда присоединяет весь диск, даже если запрашивается только секция. Не удается подключить диск установки Windows.
Необходимые компоненты
Вам потребуется использовать Windows 11 сборки 22000 или более поздней версии или запустить версию WSL в Microsoft Store. Чтобы проверить версию WSL и Windows, используйте следующую команду: wsl.exe --version
Различия между подключением внешнего диска с форматированием Windows и форматированием Linux
Внешние диски, отформатированные для Windows, обычно используют форматирование файловой системы NTFS. Внешние диски, отформатированные для Linux, обычно используют форматирование файловой системы Ext4.
Если вы подключили диск с форматом NTFS в файловой системе Windows, вы можете получить доступ к диску из дистрибутива Linux с помощью WSL, создав подключенный каталог (sudo mkdir /mnt/d
заменив "d" любым буквой диска, который вы хотите использовать), а затем с помощью подключаемого модуля взаимодействия файловой системы с помощью drvfs
команды:
sudo mount -t drvfs D: /mnt/d
Дополнительные сведения о сценариях подключения.
Если у вас есть диск с форматом Ext4, его нельзя подключить в файловой системе Windows. Чтобы подключить диск с форматом Ext4 в дистрибутиве Linux с помощью WSL, можно использовать команду, приведенную wsl --mount
ниже.
Подключение несекционированного диска
Если у вас есть диск, у которых нет секций, его можно подключить непосредственно с помощью wsl --mount
команды. Сначала необходимо определить диск.
Определите диск. Чтобы перечислить доступные диски в Windows, выполните следующую команду:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
Пути к дискам доступны в столбцах DeviceID. Обычно в
\\.\PHYSICALDRIVE*
формате.Подключите диск с помощью PowerShell, вы можете подключить диск с помощью пути к диску , обнаруженному выше, выполните следующую команду:
wsl --mount <DiskPath>
Подключение секционированного диска
Если у вас есть диск, в который вы не уверены, какой формат файла находится или какие секции он имеет, можно выполнить приведенные ниже действия, чтобы подключить его.
Определите диск. Чтобы перечислить доступные диски в Windows, выполните следующую команду:
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
Пути к дискам перечислены после deviceID, как правило, в
\\.\PHYSICALDRIVE*
формате.Список и выбор секций для подключения в WSL 2 . После определения диска запустите следующую команду:
wsl --mount <DiskPath> --bare
Это сделает диск доступным в WSL 2. (В нашем примере
<DiskPath>
это .\\.\PHYSICALDRIVE*
После присоединения раздел можно перечислить, выполнив следующую команду в WSL 2:
lsblk
При этом будут отображаться доступные блоковые устройства и их секции.
В Linux устройство блокировки определяется как /dev/<Device><Partition>
. Например, /dev/sdb3 — это номер раздела 3 диска sdb
.
Пример результата:
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
Определение типа файловой системы
Если вы не знаете тип файловой системы диска или раздела, можно использовать следующую команду:
blkid <BlockDevice>
Это приведет к выводу обнаруженного типа файловой системы (в TYPE="<Filesystem>"
формате).
Подключение выбранных разделов
После определения секций, которые требуется подключить, выполните следующую команду в каждой секции:
wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>
Примечание.
Если вы хотите подключить весь диск в виде одного тома (т. е. если диск не секционирован), --partition
можно опустить.
Если опущено, тип файловой системы по умолчанию — ext4.
Доступ к содержимому диска
После подключения диск можно получить по пути, на который указывает значение конфигурации: automount.root
Значение по умолчанию — /mnt/wsl
.
Из Windows диск можно получить из проводник, перейдя к следующему \\wsl$\<Distro>\<Mountpoint>
элементу (выберите любой дистрибутив Linux).
Отключение диска.
Если вы хотите отключить и отключить диск от WSL 2, выполните следующую команду:
wsl --unmount <DiskPath>
Подключение виртуального жесткого диска в WSL
Примечание.
WSL из Microsoft Store представляет новый аргумент для прямого подключения виртуального жесткого диска: wsl --mount --vhd <pathToVHD>
Вы также можете подключить файлы виртуального жесткого диска (VHD) к WSL с помощью wsl --mount
. Для этого сначала необходимо подключить VHD в Windows с помощью Mount-VHD
команды в Windows. Не забудьте выполнить эту команду с правами администратора. Ниже приведен пример, в котором мы используем эту команду, а также выводим путь к диску. Обязательно замените <pathToVHD>
фактический путь виртуального жесткого диска.
Write-Output "\\.\PhysicalDrive$((Mount-VHD -Path <pathToVHD> -PassThru | Get-Disk).Number)"
Вы можете использовать приведенные выше выходные данные, чтобы получить путь к диску для этого виртуального жесткого диска и подключить его в WSL, следуя инструкциям, приведенным в предыдущем разделе.
Этот метод также можно использовать для подключения и взаимодействия с виртуальными жесткими дисками других дистрибутивов WSL, так как каждый дистрибутив WSL 2 хранится через файл виртуального жесткого диска: ext4.vhdx
По умолчанию виртуальные жесткие диски для дистрибутивов WSL 2 хранятся в этом пути: C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName]
обратите внимание на доступ к этим системным файлам, это рабочий процесс power user. Прежде чем взаимодействовать с этим диском, убедитесь, что wsl --shutdown
диск не используется.
Справочник по командной строке
Подключение определенной файловой системы
По умолчанию WSL 2 попытается подключить устройство как ext4. Чтобы указать другую файловую систему, выполните следующую команду:
wsl --mount <DiskPath> -t <FileSystem>
Например, чтобы подключить диск как жир, выполните следующую команду:
wsl --mount <Diskpath> -t vfat
Примечание.
Чтобы получить список доступных файловых систем в WSL2, выполните следующую команду: cat /proc/filesystems
Когда диск подключен через WSL2 (файловая система Linux), он больше недоступен для подключения через драйвер ext4 в файловой системе Windows.
Подключение определенной секции
По умолчанию WSL 2 пытается подключить весь диск. Чтобы подключить определенную секцию, выполните следующую команду:
wsl --mount <Diskpath> -p <PartitionIndex>
Это работает только в том случае, если диск — MBR (главная загрузочная запись) или GPT (таблица секций GUID). Ознакомьтесь со стилями секций — MBR и GPT.
Указание параметров подключения
Чтобы указать параметры подключения, выполните следующую команду:
wsl --mount <DiskPath> -o <MountOptions>
Пример:
wsl --mount <DiskPath> -o "data=ordered"
Примечание.
В настоящее время поддерживаются только определенные параметры файловой системы. Универсальные параметры, такие как ro, rw, noatime, ...
не поддерживаются.
Подключение диска без подключения
Если схема диска не поддерживается любым из указанных выше вариантов, вы можете подключить диск к WSL 2 без его подключения, выполнив следующие действия:
wsl --mount <DiskPath> --bare
Это позволит сделать устройство блочного устройства доступным внутри WSL 2, чтобы его можно было подключить вручную. Используйте lsblk
для перечисления доступных блочных устройств в WSL 2.
Указание имени подключения
Примечание.
Этот параметр доступен только в WSL из Microsoft Store
По умолчанию имя точки подключения создается на основе физического диска или виртуального жесткого диска. Это можно переопределить с --name
помощью . Пример:
wsl --mount <DiskPath> --name myDisk
Отключение диска
Чтобы отключить диск от WSL 2, выполните следующую команду:
wsl --unmount [DiskPath]
Если Diskpath
опущено, все подключенные диски отключены и отсоединяются.
Примечание.
Если один диск не удается отключить, WSL 2 может быть вынужден выйти, выполнив команду wsl --shutdown
, которая отсоединит диск.
Ограничения
В настоящее время к WSL 2 можно подключить только все диски, что означает, что невозможно подключить только секцию. В конкретном случае это означает, что невозможно использовать
wsl --mount
для чтения секции на загрузочном устройстве, так как это устройство не может быть отсоединяться от Windows.Только файловой системы, которые изначально поддерживаются в ядре, могут быть подключены.
wsl --mount
Это означает, что невозможно использовать установленные драйверы файловой системы (например, ntfs-3g), вызывая вызовwsl --mount
.Файловые системы, не поддерживаемые ядром, могут быть подключены через
--bare
подключение, а затем вызывать соответствующий драйвер FUSE.
Windows Subsystem for Linux