Доступ до знімних носіїв на Bash в Windows


38

Чи є доступ до знімних носіїв (наприклад, накопичувачів пальців або SD-карт) з Bash в Windows?

Bash в Windows використовує DriveFs для монтажу фіксованих дисків у /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/


4
Будь ласка, не публікуйте однакову відповідь на кілька запитань. Якщо однакова інформація дійсно відповідає на обидва запитання, то одне питання (як правило, нове) має бути закрите як дублікат іншого. Ви можете вказати це, проголосувавши, щоб закрити його як дублікат або, якщо у вас недостатньо репутації для цього, підняти прапор, щоб вказати, що це дублікат. В іншому випадку підгадуйте свою відповідь на це питання і не просто вставляйте одну й ту ж відповідь у декілька місць.
DavidPostill

7
Шановний Девід. Сміливо піднімайте прапор для дублювання самостійно. Ця відповідь пристосована до питання, і ви більше ніж вітаємось, щоб зробити пропозиції щодо вдосконалення.
user643011

2
Шановний "користувач", я підтримав ваш коментар тут, припускаючи, що те, що ви сказали, добре, правда ... Тепер я усвідомлюю, що я помилявся, але не можу, здається, скасувати моє оновлення коментарів, тому я повинен запитати прямо: як саме це "пристосоване до запитання", але все ще залишається точною "побітною" копією іншої вашої відповіді ?
Sz.

Гей, Sz! Тому що це правда? Він відповідає точно: чи є спосіб отримати доступ до знімних носіїв з 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 File System Support


Подальше читання


Зараз є рішення: superuser.com/a/1209701/182880
user643011

0

Якщо пристрою немає /dev, можливо, ваша установка навіть не визначає накопичувач.

Команда lsblkповинна перелічити всі підключені блокові пристрої (диски). Якщо він не відображається в цьому списку, найкраще спробувати підключити пристрій до запуску bash.

Я не бачу у вашому запитанні жодної згадки про те, який метод використання bash для Windows ви знайшли, але для більшості це не повинно бути занадто важким для перезавантаження bash.

Якщо lsblkви показуєте ваш диск, знайдіть шлях, який він перераховує та введіть mount <path shown by lsblk> <path you want the drive to be mounted to>


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 shell у Windows 10
DavidPostill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.