我试图让davfs2在引导时自动挂载WebDAV文件夹。
systemd似乎试图在DHCP客户端有IP地址(当然失败)之前用mount.davfs挂载文件夹,即使在/etc/fstab中使用_netdev挂载选项也是如此。(如果没有_netdev,挂载也会失败,但是整个引导过程也会失败,在引导过程中,我会掉进根shell。)
我能给davfs什么魔法,让它只在我们用DHCP获得一个IP地址之后才能挂载?(为什么这不是默认的.)
从下面的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.发布于 2019-01-22 04:03:06
正如在系统D:在网络真正启动后启动服务(为了WoL目的)中描述的那样,由于一些不可思议的原因,我不会假装理解,系统目标network-online (和其他合理的目标)在我们获得DHCP地址之前就已经到达了。(这似乎是错的)。
我的猜测是,这就是fstabs _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但现在至少起作用了。
https://serverfault.com/questions/949715
复制相似问题