乌班图20.04。我有一个systemd
挂载远程 NFS 路径的挂载文件。挂载文件如下所示:
[Unit]
Description=/userdata
Wants=network-online.target
After=network-online.target
[Mount]
What=10.20.30.40:/data/users
Where=/userdata
Type=nfs
Options=nofail,rw,soft,intr,actimeo=60
[Install]
WantedBy=multi-user.target
随机地,该路径将无法在重新启动时安装。它已启用。如果我手动启动,它工作正常并安装/userdata/
目录。
检查挂载文件的状态会出现“网络无法访问”错误:
$ sudo systemctl status userdata.mount
● userdata.mount - /userdata
Loaded: loaded (/lib/systemd/system/userdata.mount; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2021-06-07 09:56:27 EDT; 6h ago
Where: /userdata
What: 10.20.30.40:/data/users
Jun 07 09:56:27 hostname mount[474]: mount.nfs: Network is unreachable
Jun 07 09:56:27 hostname systemd[1]: userdata.mount: Mount process exited, code=exited, status=32/n/a
Jun 07 09:56:27 hostname systemd[1]: userdata.mount: Failed with result 'exit-code'.
Jun 07 09:56:27 hostname systemd[1]: Failed to mount /userdata.
Warning: journal has been rotated since unit was started, output may be incomplete.
从网络搜索来看,这是一个常见问题。不过,它早于systemd
,因此最常见的解决方案是“systemd
为其编写一个挂载文件”。在这种情况下,我已经在使用了systemd
,所以这没有帮助。
我找到了一个拱门维基评论建议我应该能够systemd-networkd-wait-online.service
解决这个问题。但是,该命令$ sudo systemctl status systemd-networkd-wait-online.service
显示该单元文件已在我的系统上启用。
所以,我不知道还能做什么。如何在启动时一致地安装此路径?
编辑
我尝试替换Wants=network-online.target
为Requires=network-online.target
,但这并没有解决或以其他方式影响问题。
答案1
我认为你的问题是Wants=network-online.target
而不是Requires=network-online.target
。
当Wants=
要求network-online.target
启动时,它可能会忽略network-online.target
.然而,对于 NFS 来说,这显然是必不可少的。Requires=
严格要求成功启动和运行服务。我认为您的网络在启动过程中有点不稳定。