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

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

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

Я хочу автоматически подключить любой USB-разъем, подключенный к компьютеру. Первый обнаруженный USB перейдет к /media/HDD1, второй - к /media/HDD2 и так далее. Или было бы здорово, если USB, подключенный к порту 1, перейдет к /media/HDD1, USB, подключенный к порту 2, перейдет к /media/HDD2 и т. Д.

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

Обычно USB-устройства имеют тип ext2, но иногда я получаю и FAT32, и NTFS USB.

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

Как я могу это сделать? Какое изменение в udev правилах, fstab я должен сделать? Любое предложение высоко ценится.

9
задан 10 January 2014 в 07:18

2 ответа

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

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

Первый столбец указывает файловую систему, I Я уверен, что у ваших 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 guess используемый тип файла:

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

Хорошо, теперь давайте b масла до опций, которые будут такими же для компакт-дисков с плюсами разрешений на чтение / запись:

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

7
ответ дан 10 January 2014 в 07:18

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

Сначала я устанавливаю 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 - это файл, который нужно добавить в правила монтирования. - тайм-аут = 10 означает, что диск будет автоматически отключен после 10 секунд бездействия. - призрак означает, что он все еще оставляет изображение контента, когда оно отключено. Измените эту строку в соответствии с вашими потребностями.

Отредактируйте файл /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 = авто, синхронизация . У меня 8 портов USB + eSATA, поэтому я объявляю здесь 8 точек монтирования. На моем ПК уже есть sda и sdb в качестве локальных дисков, поэтому я поставил sdc1 -> sdj1 для внешних устройств. На самом деле они являются узлами устройств в / dev , когда вы подключаете диски.Исключением из правила монтирования является монтирование DVD, как вы видите выше.

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

3
ответ дан 10 January 2014 в 07:18

Другие вопросы по тегам:

Похожие вопросы: