fstab 中的“nobootwait”和“nofail”有什么区别?

Eva*_*oll 72 fstab

这个问题中,我询问了如何防止媒体故障停止系统启动过程。但是,我有两个/etc/fstab选项建议

  • nobootwait
  • nofail

两者有什么区别?

Eva*_*oll 52

nofail即使驱动器无法安装,首先也允许引导序列继续。

这就是fstab(5)关于nobootwait

在引导期间挂载文件系统的 mountall(8) 程序也识别?提供普通 mount(8) 工具没有的附加选项。它们是: bootwait 可以应用于安装在 /usr 或 /var 之外的远程文件系统,否则 mountall(8) 不会阻止这些启动;nobootwait这可以应用于非远程文件系统,以明确指示 mountall(8) 不要阻止它们的启动;optional如果在启动时不知道文件系统类型,这会导致条目被忽略;并且 showthrough 允许挂载点在其父挂载点之前挂载(后者应谨慎使用,因为它可能导致引导挂起)。

fstab(5) 有这个要说 nofail

如果此设备不存在,则 nofail 不会报告此设备的错误。

  • `nobootwait` 不再是 Ubuntu 16.04 中的有效选项(截至 2016-07-10 测试 Mythbuntu install/live-DVD)。 (14认同)
  • 请注意, mountall 和这些选项是特定于 ubuntu(及其衍生产品)的(并且只有相对较新的版本,其中引入了 upstart 和 mountall。 (6认同)
  • `存在时要安装但如果不存在则忽略的外部设备可能需要 nofail 选项。这可以防止在启动时报告错误。` (2认同)
  • 我很明确地说`fstab(5)`。所以`man 5 fstab` (2认同)

小智 29

正如 Stéphane 所提到的,nobootwait 仅限于 ubuntu+derivatives。

正如 cjm 所指出的,Nofail 将继续尝试挂载驱动器,但是,在挂载达到 timeout 后引导过程将继续。如果您不希望驱动器经常在那里以保证在它不存在时额外的 90 秒左右的启动时间,请不要在 fstab 中自动挂载它。

(PS 我把它作为 cjm 的回答听起来好像系统最终将无法启动)。


Dav*_*ove 20

由于这个老问题的谷歌评分很高,我会提到由于“nobootwait”不再有效,当前的方法是使用“x-systemd.device-timeout”设置一个短暂的超时时间,比如9秒。

例如:

/dev/sda2  /mnt/other  auto  defaults,nofail,x-systemd.device-timeout=9  0  2
Run Code Online (Sandbox Code Playgroud)

(编辑:我已将超时从 3 秒增加到 9 秒,因为 Ubuntu 似乎偶尔会在启动时进行快速文件系统检查,其持续时间可能超过 3 秒。)

  • @Wyatt8740 您阅读了 init 系统的文档。 (2认同)

小智 6

这篇文章似乎很好地解释了差异

mountall 尝试从 fstab 自动挂载所有具有默认值或自动挂载选项的条目。如果无法挂载此类条目,它将停止引导过程,除非给出了挂载选项nobootwait

fsck 尝试对 fstab 中第六个字段设置为 1 或 2 的所有条目进行文件系统检查。非关键驱动器通常将此字段设置为 2。如果无法检查此类文件系统,它将停止引导过程,除非给出了挂载选项nofail

免责声明:我不是 fstab 专家,不能保证/验证上述信息是真实的。所有学分都属于那篇文章作者