Вот моя проблема:
Мой компьютер имеет 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
я должен сделать? Любое предложение высоко ценится.
Что ж, здесь мы можем использовать тот же трюк, который 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-устройство он будет автоматически установлен в точку монтирования без вмешательства пользователя. Вы должны изменить в соответствии с вашими потребностями.
Вот решение, которое я нашел:
Сначала я устанавливаю 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 секунд. Мне не нужно прикасаться к своему ПК, и я могу получить к нему доступ из другого места (например, с виртуальной машины)