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

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

这个问题我询问如何防止介质故障导致系统启动过程停止。但是,我得到了两个/etc/fstab选项建议

  • nobootwait
  • nofail

两者有什么区别?

答案1

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

这就是fstab(5)关于nobootwait

在引导期间挂载文件系统的 mountall(8) 程序还可以识别普通 mount(8) 工具无法识别的其他选项。这些都是:

  • bootwait 它可以应用于安装在 /usr 或 /var 之外的远程文件系统,没有它 mountall(8) 将无法阻止这些文件系统的启动;

  • nobootwait它可以应用于非远程文件系统,以显式指示 mountall(8) 不要阻止它们的启动;

  • optional如果启动时未知文件系统类型,这会导致该条目被忽略;和

  • showthrough 它允许挂载点在其父挂载点之前挂载(后者应谨慎使用,因为它可能导致引导挂起)。

fstab(5)有这个要说的nofail

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

答案2

由于这个老问题在 Google 上有很高的评价,我会提到,由于“nobootwait”不适用于 systemd,所以正确的方法是使用“x-systemd.device-timeout”设置一个较短的超时,例如 9 秒”。

例如:

/dev/sda2  /mnt/other  auto  defaults,nofail,x-systemd.device-timeout=9  0  2

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

答案3

正如 Stéphane 所提到的,nobootwait 仅限于 ubuntu+ 衍生版本。

Nofail 将继续尝试安装驱动器,正如 cjm 指出的那样,但是,挂载超时后,引导过程将继续。如果您不希望驱动器定期存在,以保证在驱动器不存在时有额外的 90 秒左右的启动时间,请不要在 fstab 中自动挂载它。

(PS 我把这个作为 cjm 的答案,听起来好像系统最终会失败启动)。

答案4

nobootwait曾是一个暴发户防止暴发户等待设备的特定选项。

nofail坐骑不会阻止系统在出现故障时启动

请注意,自从系统(Ubuntu 和大多数使用它的发行版上 upstart 的替代品)异步挂载 fstab 条目nofail就足够了。

相关内容