![systemd 似乎忽略了 Ubuntu 16.04 中的 NFS _netdev 选项](https://linux22.com/image/881636/systemd%20%E4%BC%BC%E4%B9%8E%E5%BF%BD%E7%95%A5%E4%BA%86%20Ubuntu%2016.04%20%E4%B8%AD%E7%9A%84%20NFS%20_netdev%20%E9%80%89%E9%A1%B9.png)
我有以下用于 NFS 的挂载点/etc/fstab
:
192.168.1.6:/var/share /media/share nfs hard,intr,retrans=10,timeo=10000000,_netdev 0 0
重新启动时我的系统挂起;结果证明是安装所致systemd-analyze blame
。
状态:
● media-share.mount - /media/share
Loaded: loaded (/etc/fstab; bad; vendor preset: enabled)
Active: failed (Result: timeout) since Tue 2016-04-26 21:13:43 EDT; 6min ago
Where: /media/share
What: 192.168.1.6:/var/share
Docs: man:fstab(5)
man:systemd-fstab-generator(8)
Process: 1071 ExecMount=/bin/mount 192.168.1.6:/var/share /media/share -t nfs -o hard,intr,retrans=10,timeo=10000000,_netdev (code=kille
Apr 26 21:12:12 j-Lemur systemd[1]: Mounting /media/share...
Apr 26 21:13:42 j-Lemur systemd[1]: media-share.mount: Mounting timed out. Stopping.
Apr 26 21:13:42 j-Lemur systemd[1]: Mounted /media/share.
Apr 26 21:13:43 j-Lemur systemd[1]: media-share.mount: Unit entered failed state.
这看上去像是一个 Bug?
登录运行后就systemctl restart media-share.mount
修复了(因为现在网络可用)。
答案1
我有同样的问题。
Ubuntu 社区帮助 Wiki 上有一些信息这里这表明这是 Ubuntu 16 的故意行为:
在 NFSv3(类型 nfs)下,_netdev 选项将告诉系统等待挂载,直到网络可用。对于 nfs4 类型,此选项将被忽略,但稍后可以在脚本中与 mount -O _netdev 一起使用。目前,Ubuntu Server 没有附带在网络启动后自动挂载 /etc/fstab 中的 nfs4 条目所需的脚本。
我的解决方案是在“_netdev”前添加“vers=3”,强制连接使用 NFS v3。如果您依赖 NFS v4,这显然可能对您没有帮助。
其他选择可能包括自动文件系统或 shell 脚本。