Как указать systemctl автоматически отключать диск, если он не используется, и удалять каталог после отключения?

Как указать systemctl автоматически отключать диск, если он не используется, и удалять каталог после отключения?

У меня есть такая запись в fstab:

LABEL=cache /disks/cache ext4 rw,user,x-mount.mkdir,relatime,noauto,errors=remount-ro,x-systemd.idle-timeout=120min  0 0

Я ожидаю, что сделаю следующее:

  1. для монтирования диска с кэшем меток в /disks/cache в любое время, когда я это потребую
  2. создать путь /dsisks/cache, если он не существует
  3. Чтобы предоставить разрешение +rwx моему пользователю или любому другому пользователю в его статусе
  4. автоматически отмонтировать диск, если он не используется в течение 1 часа

Почему шаг 4 не работает и как сделать так, чтобы папка удалялась после размонтирования, есть ли опция x-umount.rmdir?

решение1

То, что вы описываете, невозможно сделать в fstab.

Ниже приведены типичные способы монтирования дисков:

  • Добавьте их в fstab, чтобы они автоматически монтировались при загрузке. (Для этого используется опция defaultsили autoв fstab.)
  • Смонтируйте их вручную, либо как root со всеми указанными параметрами, либо вручную только как точку монтирования или устройство с оставшимися параметрами из fstab, либо как пользователь для записей, перечисленных в fstab, с параметрами noauto,userв четвертом столбце.
  • Используйте udisks для автоматического монтирования дисков горячей вставки, таких как cdrom и usb-накопители, обычно в каталоге /media. Однако это отмонтируется только по требованию пользователя. Udisks обычно монтируется при вставке устройства, но его также можно запустить из командной строки.
  • Используйте autofs для их монтирования по требованию, когда на каталог ссылаются, и отмонтируйте их по истечении времени ожидания, когда они больше не используются.

Autofs настраивается путем перечисления управляемых верхних каталогов по одному в каждой строке /etc/auto.masterв конфигурационном файле для каждого управляемого каталога, при этом каждый конфигурационный файл перечисляет подкаталоги управляемых каталогов.

Например, auto.master может перечислить /etc/auto.misc, что в свою очередь может перечислить ряд файловых систем или устройств с потенциальными файловыми системами. По умолчанию auto.misc, который поставляется с autofs, перечисляет floppy(закомментировано по умолчанию), что будет смонтировано, /misc/floppyесли к нему будет получен доступ и файловая система будет доступна на этом устройстве.

Примеры строк из auto.master:

/misc  /etc/auto.misc
/home  /etc/auto.home
/disks  /etc/auto.disks   --timeout=3600

Пример строки из auto.misc:

floppy         -fstype=auto            :/dev/fd0

Пример строки из auto.home:

someuser         homeserver:/export/home/someuser

Autofs может сделать все, что вы просили, за исключением установки разрешений, которые обычно наследуются от разрешений корневого каталога в смонтированной файловой системе, или опций монтирования, если файловая система это поддерживает. Для приведенной выше (непроверенной) строки disks потребуется соответствующий /etc/auto.disksфайл с описанием файловых систем, которые вы хотите смонтировать/disks/

решение2

Создайте файл автомонтирования для каждого устройства через systemd. Для этого создайте файл /etc/systemd/system/diskname.automountсо следующим содержимым:

[Unit]
Description=Automountaje de discos de usuario
After=blockdev@dev-disk-by\x2dlabel-cch.target

[Automount]
Where= mountpoint
TimeoutIdleSec=10

[Install]
WantedBy=multi-user.target

Замените точку монтирования на желаемое местоположение и убедитесь, что это местоположение правильно назначено диску в /etc/fstab.

Это должно работать напрямую.

Связанный контент