我在本地机器上有一个条目,/etc/fstab
用于在远程主机上挂载 NFS 分区:
remotehost:/ /media/blabla nfs4 defaults,nobootwait 0 0
当我尝试在远程主机关闭时启动机器时,启动过程因错误而停止。
mount.nfs4: Connection timed out
mountall: mount /media/blabla [915] terminated with status 32
我必须先重新启动远程主机,然后才能启动我的机器。现在,如果分区是本地的,我可以使用该选项解决此nobootwait
问题,但在这里它没有帮助。
我该如何设置才能忽略挂载错误并正常启动远程分区呢?
答案1
您可以noauto
在 /etc/fstab 中添加标志,以使系统在启动过程中不尝试自动挂载特定文件系统。它与默认设置相反auto
,noauto
通常出现在可移动媒体(如 CD、软盘、可移动硬盘等)上的文件系统中。它也适用于网络文件系统,或者如果您出于任何原因需要比 fstab 中的设置允许的更详细地控制挂载。这适用于任何文件系统类型,而不仅仅是 NFS 文件系统。
一旦设置了相关文件系统noauto
,您就可以添加或编辑后期初始化脚本,以便在相关文件系统上执行后台挂载。如果主机可访问,它将很快完成,如果主机不可访问(网络故障、主机故障等),它将(应该;您永远不知道 NFS 的情况)在后台等待超时。
这种方法确实不依赖于启动过程中或启动后不久需要访问文件系统上的任何内容,但由于您的情况如此,所以它应该可以工作。
回顾一下,在 /etc/fstab 中将相关文件系统设置为 noauto:
remotehost:/ /media/blabla nfs4 defaults,nobootwait,noauto 0 0
例如在 /etc/rc.local 中(具体情况取决于你的发行版,但 /etc/rc.local 或 /etc/rc.d/local 可能是不错的起点):
mount /media/blabla &
“&”符号使挂载进程在后台生成,挂载进程将驻留并等待挂载成功或超时。如果您不希望任何潜在的错误输出扰乱控制台,您可以通过将其输出重定向到 /dev/null 来实现这一点:
mount /media/blabla 2>&1 >/dev/null &
答案2
使用选项挂载文件系统nofail
。从 mount(8) 开始:
nofail Do not report errors for this device if it does not exist.