LINUX.ORG.RU

systemd nfs

 , ,


0

1

У меня не получается написать нормально юнит для монтирования NFS шары по запросу. Не могу понять как выстраиваются зависимости Прошу помощи.

При каждом запуске выдаёт ошибку монтирования.

Читал что по умолчанию каждому юниту.mount в зависимость добавляется local-fs.target. Как понимаю он завершается успешно когда примонтировано все локальные диски? Я правильно понимаю, что монтировать сетевую шару надо после него? Я правильно указываю, что это делать нужно после After=local-fs.target или мне нужно пользовать секцией [Install] WantedBy? В чём между ними разница? Если возможно киньте в меня какой-нибудь докой по этому вопросу =) Спасибо…

systemd[1]: local-fs.target: Found ordering cycle on home-user-media.automount/start
systemd[1]: local-fs.target: Found dependency on network-online.target/start
systemd[1]: local-fs.target: Found dependency on network.target/start
systemd[1]: local-fs.target: Found dependency on systemd-resolved.service/start
systemd[1]: local-fs.target: Found dependency on systemd-tmpfiles-setup.service/start
systemd[1]: local-fs.target: Found dependency on local-fs.target/start
systemd[1]: local-fs.target: Job home-user-media.automount/start deleted to break ordering cycle starting with local-fs.target/start
cat home-user-media.mount
[Unit]
Description=NFS share media
Wants=local-fs.target
After=local-fs.target

[Mount]
What=IP:/data/media
Where=/home/user/media
Type=nfs4
Options=rw
DirectoryMode=0755
cat home-user-media.automount
[Unit]
Description=NFS share media
Wants=network-online.target
After=network-online.target

[Automount]
Where=/home/user/media
TimeoutIdleSec=301

[Install]
WantedBy=multi-user.target

upd: Как я понял из мана systemd.automount(5):

Note that automount units are separate from the mount itself, so you should not set After= or Requires= for mount dependencies here. For example, you should not set After=network-online.target or similar on network filesystems. Doing so may result in an ordering cycle.

не стоило мне разделять зависимости по файлам *.mount *.automount. Все зависимости должны быть в первом файле, второй отвечает только монтирование и отключение.

Спасибо всем кто принимал участие =)



Последнее исправление: SmilePlz (всего исправлений: 2)

systemd ненужно

Но всё-таки отмечу, что «WantedBy» это не зависимость, а наоборот: твой юнит добавится в зависимости к указанному там.

[Install]
WantedBy=multi-user.target

это то же самое как в multi-user.target прописать

Wants=home-user-media.automount

Видимо ты таки прописал WantedBy=local-fs.target своему automount-у и теперь local-fs зависит от него, а он зависит (по цепочке) от local-fs

firkax ★★★★★
()
Ответ на: комментарий от SmilePlz

systemd парсит fstab и сам генерирует нужные юниты на его основе, это рекомендуемый способ работы с маунтами.

Пропиши эту шару в fstab с опцией x-systemd.automount, и все будет работать как положено

Lrrr ★★★★★
()
Ответ на: комментарий от Lrrr

спасибо большое за совет. Знал что он парсит, но думал этот вариант не подходит. fstab лучше в том плане, потому что всё находится в одном месте, это очень удобно.

SmilePlz
() автор топика