systemd 似乎忽略了 Ubuntu 16.04 中的 NFS _netdev 选项

systemd 似乎忽略了 Ubuntu 16.04 中的 NFS _netdev 选项

我有以下用于 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 脚本。

相关内容