systemd пытается смонтировать davfs2 слишком рано - до получения адреса DHCP

Я пытаюсь заставить davfs2 автоматически смонтировать папку WebDAV на debian stretch в boot.

Похоже, что systemd пытается смонтировать папку с mount.davfs до того, как DHCP-клиент получит IP-адрес (что, конечно, не удается), даже с _netdev параметр монтирования в / etc / fstab . (Без _netdev монтирование также не удается, но также происходит и весь процесс загрузки, и я попадаю в корневую оболочку во время загрузки.)

Какое волшебство я могу дать davfs , чтобы он пытается подключиться только после того, как мы получили IP-адрес с DHCP? (И почему это не по умолчанию ...)

Как видно из вывода journalctl ниже, davfs2 пытается подключиться до того, как DHCPACK и NFS смонтируются успешно после DHCPACK. Итак, NFS ведет себя, но davfs2 не работает.

> grep davfs /etc/fstab
https://example.com/remote.php/webdav/ /home/peter/pmorch davfs user,rw,auto,_netdev 0 0

> sudo journalctl --since 13:20:48 | grep -P 'davfs|pmorch|DHCP|ISO'
Jan 18 13:20:49 snowden dhclient[669]: Internet Systems Consortium DHCP Client 4.3.5
Jan 18 13:20:49 snowden sh[657]: Internet Systems Consortium DHCP Client 4.3.5
Jan 18 13:20:49 snowden sh[657]: DHCPDISCOVER on ens18 to 255.255.255.255 port 67 interval 3
Jan 18 13:20:49 snowden dhclient[669]: DHCPDISCOVER on ens18 to 255.255.255.255 port 67 interval 3
Jan 18 13:20:49 snowden systemd[1]: Mounting /mnt/ISO-Dev...
Jan 18 13:20:49 snowden systemd[1]: Mounting /home/peter/pmorch...
Jan 18 13:20:49 snowden systemd[1]: Mounting /mnt/ISO...
Jan 18 13:20:49 snowden mount.davfs[751]: davfs2 1.5.4
Jan 18 13:20:49 snowden systemd[1]: home-peter-pmorch.mount: Mount process exited, code=exited status=1
Jan 18 13:20:49 snowden systemd[1]: Failed to mount /home/peter/pmorch.
Jan 18 13:20:49 snowden systemd[1]: home-peter-pmorch.mount: Unit entered failed state.
Jan 18 13:20:50 snowden dhclient[669]: DHCPREQUEST of 172.22.216.172 on ens18 to 255.255.255.255 port 67
Jan 18 13:20:50 snowden sh[657]: DHCPREQUEST of 172.22.216.172 on ens18 to 255.255.255.255 port 67
Jan 18 13:20:50 snowden sh[657]: DHCPOFFER of 172.22.216.172 from 172.22.216.251
Jan 18 13:20:50 snowden dhclient[669]: DHCPOFFER of 172.22.216.172 from 172.22.216.251
Jan 18 13:20:50 snowden dhclient[669]: DHCPACK of 172.22.216.172 from 172.22.216.251
Jan 18 13:20:50 snowden sh[657]: DHCPACK of 172.22.216.172 from 172.22.216.251
Jan 18 13:20:52 snowden systemd[1]: Mounted /mnt/ISO-Dev.
Jan 18 13:20:52 snowden systemd[1]: Mounted /mnt/ISO.
0
задан 18 January 2019 в 14:44
1 ответ

Как описано в systemd: запуск службы во время загрузки после того, как сеть действительно работает (для целей WoL) , по какой-то невероятно странной причине, которую я не буду делать вид, что понимаю , цель systemd сеть-онлайн (и другие разумно звучащие цели) достигаются до мы получаем IP-адрес DHCP. (Это кажется неправильным .)

Я предполагаю, что именно по этой причине fstab s _netdev пытается смонтировать его слишком рано.

Вместо этого я полностью удалил строку из / etc / fstab и теперь готов:

systemctl enable systemd-networkd.service systemd-networkd-wait-online.service

И создал /etc/systemd/system/home-peter-pmorch.mount :

[Unit]
Description=Mount pmorch WebDAV Service
After=systemd-networkd-wait-online.service
Wants=systemd-networkd-wait-online.service

[Mount]
What=https://example.com/remote.php/webdav/
Where=/home/peter/pmorch
Options=uid=peter,gid=peter,file_mode=0664,dir_mode=2775,grpid
Type=davfs
TimeoutSec=15

[Install]
WantedBy=multi-user.target

Теперь он монтируется во время загрузки. И после проблемы с сетью я больше не могу выполнять mount -a , но должен

sudo systemctl start home-peter-pmorch.mount

Но теперь, по крайней мере, это работает.

0
ответ дан 5 December 2019 в 04:22

Теги

Похожие вопросы