Доступ к съемным носителям в Bash в Windows

38

Есть ли способ получить доступ к съемным носителям (например, флэш-накопителям или SD-картам) из Bash в Windows?

Bash в Windows использует DriveF для монтирования фиксированных дисков в /mntпапке, но не монтирует съемные носители автоматически. И это не похоже, что это помещает их в /dev:

Aaron@MYPC:/$ ls /dev
block  fd  kmsg  lxss  null  ptmx  pts  random  shm  stderr  stdin  stdout  tty  tty0  tty1  urandom  zero

Есть ли способ монтировать съемные диски? Есть ли способ получить доступ к базовому блочному устройству?

Аарон Кэмпбелл
источник
5
Смотрите это wpdev.uservoice.com/forums/… .
CodeIt
напечатайте mountи посмотрите, даст ли это вам подсказки. Если используется cygwinbash, путь / cygdrive /.
strobelight
Нет: Aaron@MYPC:~$ mount rootfs on / type rootfs (rw,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204320k,mode=755)[и т. Д.]
Аарон Кэмпбелл
Аналогично, хотя в этом вопросе конкретно упоминаются сменные носители, а этот относится к фиксированным носителям. Ответ с самым высоким рейтингом на этот пост только частично применим к этому вопросу.
Аарон Кэмпбелл

Ответы:

50

Хорошая новость: теперь возможно подключить USB-носители (включая отформатированные как FAT) и сетевые папки с помощью drvfs в Windows 10:

Смонтируйте съемный носитель: (например, D :)

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

Для безопасного демонтажа

$ sudo umount /mnt/d

Вы также можете подключить сетевые ресурсы без smbfs:

$ sudo mount -t drvfs '\\server\share' /mnt/share

Вам нужна как минимум Build 16176, поэтому вам, возможно, придется подключиться к программе Windows Insider, а затем обновить Windows. Источник: https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

user643011
источник
4
Пожалуйста, не размещайте один и тот же ответ на несколько вопросов. Если одна и та же информация действительно отвечает на оба вопроса, то один вопрос (обычно более новый) следует закрыть как дубликат другого. Вы можете указать это, проголосовав, чтобы закрыть его как дубликат, или, если у вас недостаточно репутации, поднять флаг, чтобы указать, что это дубликат. В противном случае настройте свой ответ на этот вопрос, а не просто вставляйте один и тот же ответ в нескольких местах.
ДэвидПостилл
7
Уважаемый Дэвид. Не стесняйтесь поднять флаг для дублирования самостоятельно. Этот ответ адаптирован к данному вопросу, и мы будем рады предложить предложения по улучшению.
user643011
2
Уважаемый «пользователь», я оставил здесь ваш комментарий, предполагая, что то, что вы сказали, было, ну, в общем-то, правдой ... Теперь я понимаю, что был неправ, но не могу отменить мой комментарий, так что я должен четко спросить: как именно это «приспособлено к вопросу», и в то же время является точной «побитовой» копией вашего другого ответа ?
СЗ
Эй, Сз! Потому что это правда? Он точно отвечает: есть ли способ получить доступ к съемным носителям из Bash в Windows? Если у вас есть лучший ответ, то смело отвечайте на вопрос лучше или предложите изменить его. Благодарность!
user643011
wrong fs type, bad option, bad superblock on G:, missing codepage or helper program, or other error- также, пожалуйста, прочитайте этот комментарий ; не отвечайте на дубликаты.
Фонд Моника иск
10

Есть ли способ получить доступ к съемным носителям из Bash в Windows?

Обновить:

По-видимому, теперь это возможно, начиная с Windows 10 Build 16176.

См. Https://superuser.com/a/1209701/337631 .


Нет.

На данный момент существуют ограничения на то, какие диски монтируются:

Чтобы диск отображался в / mnt /, он должен соответствовать следующим критериям:

  1. Диск должен быть фиксированным
  2. Диск должен быть отформатирован в NTFS.

Это было поднято как проблема: Диски кроме C: не смонтированы в / mnt # 1079 . Он по-прежнему помечен как «Открытый».

Чтобы облегчить взаимодействие с Windows, WSL использует файловую систему DrvFs. WSL автоматически монтирует все жесткие диски с поддерживаемыми файловыми системами в каталоге / mnt, например / mnt / c, / mnt / d и т. Д. В настоящее время поддерживаются только тома NTFS и ReFS.

Поддержка исходной файловой системы WSL


Дальнейшее чтение

ДэвидПостилл
источник
Теперь есть решение: superuser.com/a/1209701/182880
user643011
0

Если устройство отсутствует /dev, вероятно, ваша установка даже не обнаруживает диск.

Команда lsblkдолжна перечислить все подключенные блочные устройства (диски). Если его нет в этом списке, лучше всего попробовать подключить устройство перед запуском bash.

Я не вижу в вашем вопросе упоминания о том, какой метод использования bash для окон вы нашли, но для большинства не должно быть слишком сложно перезапустить bash.

Если lsblkон покажет вам ваш диск, найдите путь, который он перечисляет и введите mount <path shown by lsblk> <path you want the drive to be mounted to>

timotree
источник
mountСъемные диски пока не поддерживаются. «WSL автоматически монтирует все фиксированные диски с поддерживаемыми файловыми системами в / mnt, например, / mnt / c, / mnt / d и т. Д. В настоящее время поддерживаются только тома NTFS и ReFS». См blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support
DavidPostill
смешно. Я уже делал это некоторое время назад :) Смотрите мой ответ здесь. Управление файлами Windows с помощью оболочки linux bash в Windows 10
DavidPostill