По умолчанию 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 ответ1

0

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

[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=) является лишь примером. Он используется для запуска службы (если она включена) при монтаже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .