我正在使用 systemd 运行 Debian12。服务器的网络通过(固定租用)dhcp 配置。
我正在尝试在启动时挂载 CIFS 远程文件系统。所以我在 /etc/fstab 中添加了以下条目:
//qnap/scan_in /srv/incoming cifs domain=mydom,credentials=/root/secret.txt,_netdev,uid=paperless,gid=paperless 0 0
它不会在启动期间安装(在控制台上显示一些错误)。但是当我启动mount -a
后它运行良好。
我检查了journalctl -b0
(启动消息)并看到了以下条目:
Apr 27 11:27:38 paperless systemd[1]: Mounting srv-incoming.mount - /srv/incoming...
Apr 27 11:27:38 paperless dhclient[603]: DHCPREQUEST for 192.168.9.3 on ens3 to 255.255.255.255 port 67
[...]
Apr 27 11:27:38 paperless mount[626]: mount error: could not resolve address for qnap: Unknown error
Apr 27 11:27:38 paperless systemd[1]: srv-incoming.mount: Mount process exited, code=exited, status=1/FAILURE
Apr 27 11:27:38 paperless dhclient[603]: DHCPACK of 192.168.9.3 from 192.168.9.254
Apr 27 11:27:38 paperless sh[603]: DHCPACK of 192.168.9.3 from 192.168.9.254
Apr 27 11:27:38 paperless systemd[1]: srv-incoming.mount: Failed with result 'exit-code'.
Apr 27 11:27:38 paperless systemd[1]: Failed to mount srv-incoming.mount - /srv/incoming.
Apr 27 11:27:38 paperless cron[629]: (CRON) INFO (Running @reboot jobs)
Apr 27 11:27:38 paperless systemd[1]: Dependency failed for remote-fs.target - Remote File Systems.
Apr 27 11:27:38 paperless systemd[1]: remote-fs.target: Job remote-fs.target/start failed with result 'dependency'.
因此,看起来 _netdev 参数没有被正确考虑,因为它尝试在 DHCPACK 发送之前挂载。
当然,只要网络未启动并运行,它就无法连接到服务器。
但为什么它明显忽略“_netdev”并在发送 DHCPREQUEST 之前开始安装?
感谢您的所有想法和意见!
/简历
答案1
添加以下选项以fstab
在安装之前等待网络上线:
x-systemd.after=network-online.target
因此该fstab
行应该是:
//qnap/scan_in /srv/incoming cifs domain=mydom,credentials=/root/secret.txt,_netdev,uid=paperless,gid=paperless,x-systemd.after=network-online.target 0 0
Debian 参考:
https://manpages.debian.org/testing/systemd/systemd.mount.5.en.html#FSTAB
答案2
我终于解决了这个问题,尽管我不知道为什么这是一个解决方案......好吧,更多的是与解决方法相关。但是,它正在用 IP 地址替换主机名:
//192.168.0.14/scan_in /srv/incoming cifs domain=mydom,credentials=/root/secret.txt,_netdev,x-systemd.after=network-online.target,uid=paperless,gid=paperless 0 0
如果使用主机nmae(短或长),我会遇到上述问题。