Если вы хотите получить доступ к формату диска 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 команды:
Если у вас есть диск с форматом 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>" формате).
Подключение выбранных разделов
После определения секций, которые требуется подключить, выполните следующую команду в каждой секции:
Если вы хотите подключить весь диск в виде одного тома (т. е. если диск не секционирован), --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> фактический путь виртуального жесткого диска.
Вы можете использовать приведенные выше выходные данные, чтобы получить путь к диску для этого виртуального жесткого диска и подключить его в 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> -o <MountOptions>
Пример:
wsl --mount <DiskPath> -o "data=ordered"
Примечание
В настоящее время поддерживаются только определенные параметры файловой системы. Универсальные параметры, такие как ro, rw, noatime, ... не поддерживаются.
Подключение диска без подключения
Если схема диска не поддерживается любым из указанных выше вариантов, вы можете подключить диск к WSL 2 без его подключения, выполнив следующие действия:
wsl --mount <DiskPath> --bare
Это позволит сделать устройство блочного устройства доступным внутри WSL 2, чтобы его можно было подключить вручную. Используйте lsblk для перечисления доступных блочных устройств в WSL 2.
По умолчанию имя точки подключения создается на основе физического диска или виртуального жесткого диска. Это можно переопределить с --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.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о Windows Subsystem for Linux
Windows Subsystem for Linux — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
В этом модуле вы узнаете, как использовать подсистема Windows для Linux (WSL) с Visual Studio Code (VS Code). Мы рассмотрим процесс установки и основы использования WSL. Кроме того, мы устанавливаем и используем расширение WSL Visual Studio Code. Наконец, мы покажем, как отлаживать и запускать код Python в VS Code в нашей среде WSL.
Узнайте, как проверка объем свободного места на диске, развернуть размер виртуального жесткого диска (VHD), восстановить подключение виртуального жесткого диска или ошибку только для чтения и найти VHDX-файл и путь к диску для дистрибутивов Linux, установленных с WSL 2.