/etc/fstab:如果已经指定了“noauto”,则“nofail”的含义

Tom*_*ale 11 automounting mount fstab systemd systemd-mount

根据我对/etc/systemd选项的理解,这noauto意味着该设备不会在启动时(或使用mount -a)安装。

如果已经给出,是否有任何添加会nofail改变行为的情况noauto,或者它是完全多余的?

man systemd.mount(5) 说:

使用noauto,此挂载不会作为 local-fs.target 或 remote-fs.target 的依赖项添加。这意味着它不会在引导期间自动安装,除非它被其他一些单元拉入。

使用nofail,local-fs.target 或 remote-fs.target 只需要这个挂载,不需要。这意味着即使此挂载点未成功挂载,引导也会继续。

自动挂载情况如何?

rid*_*dgy 13

仅作记录:

对于通常在启动时未连接的外部 U 盘,我有一个 fstab 条目

/dev/disk/by-label/data /data   xfs noauto,user,noatime 0   0
Run Code Online (Sandbox Code Playgroud)

启动时没有错误,因为noauto阻止系统尝试挂载。当我尝试在未连接驱动器的情况下手动安装时,我立即收到错误消息

~$ mount /data
mount: special device /dev/disk/by-label/data does not exist
~$ 
Run Code Online (Sandbox Code Playgroud)

如果我将 fstab 中的行更改为

/dev/disk/by-label/data /data   xfs noauto,nofail,user,noatime  0   0
Run Code Online (Sandbox Code Playgroud)

没有错误报告,即使驱动器不可用:

~$ mount /data
~$ 
Run Code Online (Sandbox Code Playgroud)

系统:带有 systemd 的 Ubuntu 16.04。


m_k*_*sic 6

noauto如果源不可用,则在引导期间仍会返回错误(stderr)。

nofail将删除错误检查。

nofail如果没有x-systemd.device-timeout=指定,则默认为 90 秒超时,但当源不可用并且您或进程尝试手动安装它时。

注意:x-systemd.device-timeout=0设置无限超时。

编辑:引文

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

http://man7.org/linux/man-pages/man8/mount.8.html

  • 这是不正确的。如果设置了“noauto”,则启动时发出的“mount -a”将不会尝试挂载,因此不会等待设备。如果您指定“noauto”,并稍后尝试手动安装驱动器,如果驱动器不可用,您将收到错误消息。使用“nofail”,即使设备不可用,也不会出现错误消息。“自动安装情况”是什么意思? (3认同)