Назад | Перейти на главную страницу

Как правильно назвать systemd mount unit?

Я пытаюсь автоматически смонтировать CephFS после загрузки через systemd

У меня есть следующий блок:

[Unit]
SourcePath=/etc/fstab
DefaultDependencies=no
After=remote-fs-pre.target
After=network.target
Wants=network.target
After=network-online.target
Wants=network-online.target
Conflicts=umount.target
Before=umount.target

[Mount]
What=ceph-node1:6789,ceph-node2:6789,ceph-node3:6789:/dev
Where=/mnt/cephfs-dev
Type=ceph
Options=name=devuser,secretfile=/etc/ceph/cephuser.secret

[Install]
WantedBy=remote-fs.target

На сколько мне известно Where= настройка должна соответствовать названию устройства. Делаю дальше:

[root@centos system]# systemd-escape -p --suffix=mount '/mnt/cephfs-dev'
mnt-cephfs\x2ddev.mount
[root@centos system]# vi /etc/systemd/system/mnt-cephfs\\x2ddev.mount

Но что-то пошло не так:

[root@centos system]# systemctl status mnt-ceph\\x2ddev.mount
● mnt-ceph\x2ddev.mount - /mnt/cephfs-dev
   Loaded: error (Reason: Invalid argument)
   Active: inactive (dead)
    Where: /mnt/cephfs-dev
     What: ceph-node1:6789,ceph-node2:6789,ceph-node3:6789:/dev

May 05 10:07:12 centos.imoldovan-lpt systemd[1]: mnt-ceph\x2ddev.mount's Where= setting doesn't match unit name. Refusing.

Как правильно назвать единицу? Очевидно проблема с тире в точке монтирования /mnt/cephfs-dev но мне нужна именно эта точка монтирования.

Чтобы положить этому конец:

Проблема заключалась в том, что mnt-ceph\x2ddev.mount была опечатка. Это должно было быть mnt-cephfs\x2ddev.mount вместо.

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

Mount] What = / dev / vdc Где = / a / b / c Type = xfs Имя файла устройства должно быть "a-b-c.mount", /usr/lib/systemd/system/a-b-c.mount