Systemd: дефисы в точке монтирования

По умолчанию udisks2 монтирует съемные диски в / run / media / $ USER / [UUID]. UUID содержит дефисы.

Я хотел использовать эту точку монтирования в сервисе systemd. Но systemd использует дефис вместо косой черты.

man systemd.mount говорит мне:

Устройства монтирования должны называться в соответствии с каталогами точек монтирования, которыми они управляют. Пример: точка монтирования / home / lennart должна быть настроена в файле модуля home-lennart.mount.

Может /run/media/daniel/76ya27o9-abce-81fv-8j2hj-casjkdjhhlasfd/ использоваться в сервисе systemd из-за дефисов? Если да, то как?

1 ответ

Решение

Ну, дефис будет экранирован при создании юнита:

[tom@localhost ~]$ udisksctl mount -b /dev/sdb1 
Mounted /dev/sdb1 at /run/media/tom/A942-EE49.

[tom@localhost ~]$ systemctl --type mount
UNIT                             LOAD   ACTIVE SUB     DESCRIPTION
...
run-media-tom-A942\x2dEE49.mount loaded active mounted /run/media/tom/A942-EE49
...

В некоторых более старых версиях systemd вам может потребоваться экранировать обратную косую черту экранированного дефиса:

[Unit]
...
[Service]
...
[Install]
WantedBy=run-media-tom-A942\\x2dEE49.mount

Однако, когда я только что снова проверил это с systemd 230, очевидно, вам больше не нужно это делать. Так:

[Unit]
...
[Service]
...
[Install]
WantedBy=run-media-tom-A942\x2dEE49.mount

следует сделать.

FWIW, я думаю, что udisks2 предпочитает метку файловой системы, а не UUID, если она установлена.

PS вышеуказанный случай (WantedBy=) это просто пример. Он используется для запуска службы (если она включена) при монтаже.

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