Automounting USB диски на безголовый systemd linux box?

подходы к автоматическому монтированию устройств в Linux продолжают меняться, и Google возвращает довольно много решений с различной степенью применимости для современных систем на основе коробок.

следующие подходы существуют:

  1. модификации /etc/fstab добавить держатели в-привода UUID.
  2. udev правила (по-видимому, "необработанные правила" могут конфликтовать с существующими политиками systemd)
  3. udisks2 работает как systemd сервис или через udiskie
  4. udevil
  5. usbmount
  6. автомонтаж обеспечивается окружением рабочего стола, т. е. на XFCE через thunar + thunar-volman пакеты, или nautilus automount в Gnome с gnome-volume-manager пакета (видимо, они полагаются на udisks).
  7. autofs автомонтирования ядра
  8. systemd автоматическое монтирование, пример использования: automount-usb

как и всегда в Linux, выбор является немного подавляющим, и не ясно, какой текущий рекомендуемый подход. Кроме того, кажется, что различные подсистемы автоматического монтирования могут конфликтовать друг с другом, что приводит к ситуациям, когда раздел монтируется одним инструментом, а затем в считанные секунды автоматически размонтируется другим инструментом.

для систем с настольной средой, это просто, так как большинство они регулируют USB-установку автоматически, поэтому никакое экстренное действие не необходимо отдельно от позволять automounting вариант в установках.

каков будет нынешний подход для безголовой системы, которая в основном работает в текстовом режиме?

обновление

после возиться со всеми вариантами я нашел usbmount to просто работать после того как я отредактировал /lib/systemd/system/systemd-udevd.service и изменен MountFlags=slave to MountFlags=shared как описано в этот вопрос. Нет необходимости вручную добавлять UUID или метки в любые конфигурационные файлы. Недостатком является то, что он создает точки монтирования под /media/usbN что не идеально, поэтому я переключился на automount-usb который был удивительно легко настроить (просто побежал configure.sh скрипт) и который создает папки монтирования типа /media/<device>_<disk_label> например, like /media/sda2_mylabel.

соответствующие ссылки:

26
задан ccpizza
05.05.2023 3:13 Количество просмотров материала 2943
Распечатать страницу

2 ответа

записи /etc/fstab еще следует почитать на systemd в системе.

A .вместо этого можно использовать модуль монтирования, который следует рассматривать как эквивалентный записи в fstab.

A .блок автоматического монтирования можно использовать, если монтирование не требуется при запуске или постоянно; systemd размонтирует его по истечении периода простоя, указанного в файле модуля.

посмотреть systemd.mount(5) и systemd.automount(5) man-страницы для деталей.

1
отвечен Ignacio Vazquez-Abrams 2023-05-06 11:01

неясно, какой подход поддерживается в настоящее время "официально".

официально поддерживается кем? Если, например, GNOME включает функциональность автоматического монтирования на основе udisks, вы можете быть уверены, что она официально поддерживается самим GNOME.

меня больше интересует второе (т. е. любое запоминающее устройство USB), так как для первого я могу просто добавить записи в /etc/fstab.

нет "стандартного способа" для делающий это. В лучшем случае, большинство существующих систем по автоматизации на вершине udisks2. Сама по себе,udisks вообще ничего не монтирует, но это "бэкэнд", используемый многими графическими средами рабочего стола (по крайней мере, как GNOME, так и Xfce используют его; я только 80% уверен в KDE и Enlightenment).

(так в вашем варианте 3 будет "udisks2 + автомонтирование по udiskie", и вариант 4 будет "udisks2 + автоподключения с рабочего стола окружающая среда.")


Что касается правил udev: идет ли речь о монтировании файловых систем или запуске сервисов, короткий ответ "не делайте этого" (по разным причинам); но длинный ответ: "не делайте этого напрямую, но вы можете спросить init сделать это". Так что бежать не страшно systemd-mount из правила udev, которое затем просто передает запрос монтирования init так же, как a .монтировать агрегат будет...

однако, ожидайте, что это вызовет systemd ошибка / бородавка / misfeature: как сообщает udev устройство, чтобы быть готовым только после обработка правил, вы можете в конечном итоге с init автоматически размонтировать диск, потому что он думает, что устройство еще не существует.

вместо udevil будет работать лучше, так как он ничего не запускает через правила, а реагирует только на события "device ready", испускаемые udev.


записи fstab ориентированы на статические устройства. Однако, они могут быть какой-то ругали на разные флешки с помощью /dev/disk/by-path/..., что соответствует физическому пути устройства (например, слот PCI 3, порт USB 1, раздел 1...) Таким образом, вы можете написать запись fstab, которая соответствует любому диску, подключенному к тому же порту USB.


autofs kernel automounter, подобно udisks, просто бэкэнд, на котором могут быть реализованы различные automounts на личное пространство. после настройки монтирования autofs все о попытках доступа к нему сообщается соответствующему демону. Наиболее распространенными реализациями являются традиционные (на основе карт)autofs, и в последнее время systemd С .автоматическая установка.

таким образом, "динамическая" логика USB-устройства все равно должна быть реализована в пользовательском пространстве, и в любом случае это больше работы, чем просто использование udisks.

  • С простой systemd, ваш единственный вариант, чтобы построить на вершине выше fstab" по пути " взломать. Как только вы напишите fstab запись для нужного порта USB, вы можете пометить его с помощью x-systemd.automount,x-systemd.idle-timeout=300 использовать автомонтер autofs. (Или, конечно, создать автономный .монтировать. + automount единиц для того же результата.)

    если вы хотите динамически генерировать automounts для всех USB дисков на всех портах, systemd не может сделать это без сторонних скриптов.

  • Я не знаю,autofsd можете делать, что хотите, но я помню, что он поддерживает какой-то виды динамических карт (для домашний каталог пользователя.) Возможно, используя program map-type (и скрипт, который перечисляет все подключенные диски) будет работать.

1
отвечен grawity 2023-05-06 13:18

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

automount
fstab
linux
systemd
udev
Вверх