Продолжаем на Automounting подключенных устройств в Linux , что оставило вещи немного базовыми. Работая с Gentoo, я автоматически подключаю на своем ноутбуке комбинацию локальных и сетевых устройств с помощью autofs-5.0.4-r5. Одно только выполнение autofs дает мне несколько проблем:
- Мне нужно заранее задавать имена для точек монтирования для каждого устройства, но иногда после перезагрузки устройство чтения карт MMC меняет положение с помощью загрузочной флешки USB.
- Мне бы хотелось, чтобы появлялись автоматические точки монтирования на основе LABEL, одни только AFAIK этого делать не могут
На это, безусловно, способны udev и udisks. Но:
- Я не хочу, чтобы файловая система монтировалась автоматически при подключении устройства, просто дайте мне призрачную точку монтирования с именем LABEL
Фактическое монтирование файловой системы должно происходить только при первом доступе к точке монтирования, точно так же, как работает ghosting autofs. Это должно снизить риск загрязнения файловых систем из-за случайного отключения устройств, обеспечивая при этом большую доступность.
Кроме того, я всегда мог знать, что происходит в моем DE.
- Существует ли приложение в системном трее, способное указывать состояние всех автомонтирований, т.е. зеленый = ничего не смонтирован, красный = что-то смонтирован?
- Существует ли не зависящий от распространения способ предоставления уведомлений о операции монтирования файловой системы (например), например, с помощью notify-send? Что касается Gentoo-специфичного, это работает и для меня. Сценарии udev не помогают с NFS и CIFS, верно?
Эта комбинация должна быть окончательной настройкой автомонтирования, или я что-то упустил?
источник
Ответы:
Это все возможно с
udev
. Посмотрите на UAM , который , кажется, решить большинство проблем , о которых вы упомянули, но на самом деле это крепление автоматически. Если хотите, вы можете воспользоваться великолепными возможностями, которые он предоставляет, но изменить его, чтобы носитель не монтировался автоматически. Вы также можете связаться с автором и предложить свой неавтоматический подход к установке в качестве новой функции. А пока коротко рассмотрим его возможности:udev
, делая его независимым от DE и основанным на событиях. (Также предлагается обходной путь для оптических носителей, который может не быть обнаруженudev
.)MOUNTPOINT_TEMPLATES
что может решить проблему именования, о которой вы упоминали, несколькими пользовательскими способами (см. Uam.conf ), потенциально также используяLABEL
(по вашему желанию)источник
Вот как я недавно это сделал, и теперь я вполне доволен этим подходом. Это для Ubuntu 12.04 + gentoo, но я думаю, что любой дистрибутив, который позволяет установить udev и автозапуск должен работать.
Предварительные условия: Вы должны установить udev + autofs.
Шаг 1)
Создайте следующий файл «/etc/udev/rules.d/90-usbsd-auto.rules» (конечно, вы можете использовать любое имя, если оно оканчивается на «.rules»). :
Что это делает: создает две символические ссылки, одну для раздела запоминающего устройства USB в «/ dev / usbdisks / <...>». Он будет использовать либо метку раздела USB-накопителя, либо имя ядра, если метка отсутствует. Вторая символическая ссылка будет ссылаться с "/ media / usb / <...>" на "/ media / autousb / <...>", это делается для поддержки автомонтирования (см. Шаг 2).
Примечание. Изначально я не использовал правила с переменными ID_FS_LABEL_ENC, поскольку, на мой взгляд, это опасно. Что произойдет, если вы подключите две USB-флешки с одинаковой этикеткой?
Но постер специально хотел использовать метку USB-диска, поэтому я соответствующим образом изменил правила.
Чтобы убедиться, что udev читает эти правила, используйте
С этим файлом правил udev все настроено для автоматического монтирования раздела USB-накопителя. Обратите внимание, что прямо сейчас устройство НЕ будет автоматически подключено (намеренно). Он будет автоматически смонтирован, как только вы используете его
Шаг 2)
Настройте autofs для автомонтирования / media / autousb / <...>: я добавил следующую строку в мой файл /etc/auto.master (для Ubuntu 12.04):
Это означает, что AutoFS отключит устройство после 60 секунд бездействия. Вы можете использовать меньше или больше, в зависимости от вашего вкуса.
Для Gentoo вы должны изменить "/etc/autofs/auto.master", чтобы имело смысл использовать
Теперь я создал "auto.usb" со следующим содержимым:
Этот auto.usb должен быть исполняемым, чтобы autofs использовал его как (bash) скрипт. Так например
Что это делает? Этот скрипт сообщит AutoFS (/ usr / sbin / automount), как монтировать раздел устройства хранения USB.
Сначала сценарий будет использовать «/ sbin / blkid», чтобы выяснить, какая файловая система находится в разделе.
Затем скрипт предоставит правильные параметры монтирования в зависимости от раздела устройства.
Примечание: я включил пример кода для файловых систем "vfat" (вероятно, наиболее распространенных для USB-флешек), "ntfs" и "xfs". Конечно, это довольно легко расширить для поддержки большего количества файловых систем.
Шаг 3) Необязательно ... Чтобы "извлечь" == размонтировать ваши флешки (или разделы на вашей флешке), создайте скрипт в / sbin / usbeject:
С помощью этого сценария вы можете использовать «sudo usbeject» для размонтирования всех подключенных разделов USB-устройств (указав автомонтированию отключить их).
Конечно, вы можете просто убедиться, что раздел нигде не используется; Затем автомонтир размонтирует раздел после 60 секундного ожидания ...
Настоящий трюк здесь заключается в использовании символических ссылок из "/ media / usb" в "/ media / autousb":
источник