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

9

Вот моя проблема:

Мой компьютер имеет 4 порта USB и работает под управлением Ubuntu 12.10. Я получаю разные USB каждый день, подключаюсь к компьютеру, читаю / записываю на них данные, а затем отправляю их.

То, что я хочу, это автоматически подключить любой USB, который я подключаю к компьютеру. Первый обнаруженный USB перейдет к /media/HDD1, второй перейдет к /media/HDD2и так далее. Или это было бы здорово , если USB подключен к port1 пойдет /media/HDD1, USB подключен к порта 2 пойдет /media/HDD2, и так далее.

Путь /mediaне важен, но я хотел бы, чтобы каталоги HDD1-4 были в одном месте, чтобы я мог легко получить к ним доступ.

USB обычно ext2, но иногда я получаю и FAT32, и NTFS USB.

Я также хочу, чтобы 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

Поскольку вы можете использовать практически все типы файловых систем, давайте используем autofstab, чтобы угадать тип используемого файла:

/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-устройства оно автоматически монтируется в точке монтирования без вмешательства пользователя. Вы должны изменить в соответствии с вашими потребностями.

Braiam
источник
спасибо Брайам. Я не уверен, что изменение fstab может автоматически монтировать USB без необходимости перезагрузки или использования команды «mount». Я нашел простое решение с помощью autofs. Он не только выполняет автоматическое монтирование, но также поддерживает автоматическое отключение после предварительно определенного времени бездействия, что очень полезно в моем случае
Kiwi
Нет, это не так. Как я уже говорил в начале, я использовал тот же трюк, который использует fstab для CD / DVD, который не требует rootни использования, mountни перезапуска.
Брайам
3

Вот решение, которое я нашел:

Сначала я устанавливаю autofs на моем компьютере с 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, как вы видели выше.

Когда я вставляю любые диски, они отображаются в каталоге как disk1, disk2, ... /media/mountи автоматически отключаются через 10 секунд. Мне не нужно прикасаться к моему компьютеру, и я могу получить к нему доступ из другого места (например, из виртуальной машины)

киви
источник