автоматичне кріплення будь-якого зовнішнього накопичувача під / носієм із доступом для читання / запису для всіх


9

Ось мій випуск:

Мій комп'ютер має 4 порти USB і працює на Ubuntu 12.10. Я щодня отримую різні USB-пристрої, підключаюсь до комп'ютера, читаю / записую дані до них, а потім відправлю їх.

Мені потрібно автоматично встановити будь-який USB, який я підключаю до комп'ютера. Перший виявлений USB перейде на /media/HDD1другий, перейде на /media/HDD2інше тощо. Або було б чудово, якщо USB, підключений до port1, перейде /media/HDD1, USB, підключений до port2, перейде до /media/HDD2тощо.

Шлях /mediaне важливий, але я хотів би, щоб каталоги HDD1-4 були в одному місці, щоб я міг легко отримати доступ до них.

USB зазвичай є ext2, але іноді я отримую також USB FAT32, NTFS.

Я також хочу, щоб USB монтувався без входу в Ubuntu, оскільки я часто отримую доступ /media/HDD..з іншого комп'ютера Windows.

Як я можу це зробити? Яку зміну в udevправилах fstabя повинен зробити? Будь-яка пропозиція високо цінується.

Відповіді:


7

Ну, тут ми можемо використовувати той самий трюк, який fstabвикористовується для оптичних носіїв (він же CD та DVD):

/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

Перша колонка показує файлову систему, я впевнений , що ваші USB матиме фіксовані значення, так що дозволяє припустити , що все після того, як sdaце USB, і так як ви можете мати тільки 4 USB в той же час, список йде від sdb, sdc, sddі sde.

$ ls /dev/sd*
/dev/sda   /dev/sdb   /dev/sdb3  /dev/sdb6  /dev/sdc  /dev/sdf
/dev/sda1  /dev/sdb1  /dev/sdb4  /dev/sdb7  /dev/sdd
/dev/sda2  /dev/sdb2  /dev/sdb5  /dev/sdb8  /dev/sde

(У моєму випадку я використовую зчитувач пам'яті, тому мої драйвери USB запускаються, sdgале дозволяють продовжувати.)

Тепер ми припускаємо, що кожен USB має один і лише один розділ, тому потрібні нам рядки fstab:

/dev/sdb1
/dev/sdc1
/dev/sdd1
/dev/sde1

Тоді ви сказали, що точки монтажу потрібно виправити, тож, створивши каталоги, давайте додавати їх:

/dev/sdb1 /media/HDD1
/dev/sdc1 /media/HDD2
/dev/sdd1 /media/HDD3
/dev/sde1 /media/HDD4

Оскільки ви можете мати майже всі типи файлових систем, давайте скористаємося autoтак, щоб fstab здогадався, який тип файлу використовувати:

/dev/sdb1 /media/HDD1 auto
/dev/sdc1 /media/HDD2 auto
/dev/sdd1 /media/HDD3 auto
/dev/sde1 /media/HDD4 auto

Гаразд, тепер давайте зводимось до параметрів, які будуть такими самими для компакт-дисків, плюс додатки для читання / запису:

/dev/sdb1 /media/HDD1 auto rw,users,noauto,allow_other,umask=0
/dev/sdc1 /media/HDD2 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD3 auto rw,users,noauto,allow_other,umask=0
/dev/sde1 /media/HDD4 auto rw,users,noauto,allow_other,umask=0

rwповідомляє, що ми хочемо дозвіл на читання та запис, usersдозволяє будь-якому користувачеві монтувати пристрій, noautoзапобігає автоматичному встановленню драйвера при mount -aвиклику, як це робиться під час завантаження, запобігаючи завантаженню ПОМИЛЬНОСТІ та ПОПЕРЕДЖЕННЯ, allow_otherдозволяє іншим, але не користувачеві, який встановив драйвер, мають однакові дозволи, і umask=0не дозволяє застосовувати umask за замовчуванням.

Тепер єдині 2 поля, що залишилися, майже стосуються dumpпорядку та fsckпорядку, який може бути в 0обох, що дає нам остаточний результат:

/dev/sdb1 /media/HDD1 auto rw,user,noauto,allow_other 0 0
/dev/sdc1 /media/HDD2 auto rw,user,noauto,allow_other 0 0
/dev/sdd1 /media/HDD3 auto rw,user,noauto,allow_other 0 0
/dev/sde1 /media/HDD4 auto rw,user,noauto,allow_other 0 0

При цьому кожен раз, коли ви підключаєте USB-пристрій, він автоматично встановлюється в точку монтажу без втручання користувача. Ви повинні змінювати відповідно до своїх потреб.


дякую Браям. Я не впевнений, чи зміна fstab може автоматично монтувати USB без необхідності перезавантаження або використання команди "mount". Я знайшов просте рішення використання автофайлів. Він не тільки автоматично налаштовує, але і підтримує автоматичне відключення після попередньо визначеного часу без дій, що дуже корисно в моєму випадку
Kiwi

Ні, це не так. Як я вже сказав на початку, я використовував той же трюк FSTAB використовує для CD / DVD , які не вимагають використання rootні mountні рестарту.
Брайам

3

Ось таке рішення я знайшов:

По-перше, я встановлюю autofs на моєму Linux Linux:

sudo apt-get install autofs

Це створить файл auto.master під /etc/auto.master

Додайте наступний рядок в кінці цього файлу:

/media/mount /etc/auto.mount --timeout=10 --ghost

/media/mountце каталог, в який я хочу встановити всі зовнішні диски. /etc/auto.mountце файл, який слід встановити в правилах монтажу. --timeout=10означає, що він автоматично відключить привід через 10 секунд бездіяльності. --ghostзначить, він все ще залишає картину вмісту, коли її відключити. Змініть цей рядок відповідно до своїх потреб.

Відредагуйте /etc/auto.mountфайл та додайте наступні рядки:

disk1  -fstype=auto,sync  :/dev/sdc1
disk2  -fstype=auto,sync  :/dev/sdd1
disk3  -fstype=auto,sync  :/dev/sde1
disk4  -fstype=auto,sync  :/dev/sdf1
disk5  -fstype=auto,sync  :/dev/sdg1
disk6  -fstype=auto,sync  :/dev/sdh1
disk7  -fstype=auto,sync  :/dev/sdi1
disk8  -fstype=auto,sync  :/dev/sdj1
DVD    -fstype=iso9660,ro :/dev/sr0

Для звичайних накопичувачів, таких як USB або eSATA -fstype=auto,sync. У мене є 8 портів USB + eSATA, тому я декларую тут 8 точок кріплення. Мій комп'ютер вже має sdaі sdbяк локальні диски , так що я поставив sdc1-> sdj1для зовнішніх пристроїв. Вони насправді є вузлами пристроїв, /devколи ви підключаєте диски. Винятком із правила монтажу є монтаж DVD, як ви бачите вище.

Коли я вставляю будь-які диски, вони відображатимуться як каталог1, disk2, ... під /media/mountкаталогом і автоматично відключаються через 10 секунд. Мені не потрібно торкатися свого ПК та отримувати доступ до нього з іншого місця (наприклад, віртуальної машини)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.