我可以在 fstab 中使用大于 2 的传递值吗?

Cod*_*ing 5 fstab

fstab 的手册页对此值有这样的说明pass

pass(fsck命令) fsck命令是告诉fsck用​​什么命令来检查文件系统,如果设置为“0”则忽略文件系统。

通常会造成混乱,只有 3 个选项:

0 == 不检查。1 == 首先检查该分区。2 == 接下来检查此分区 实际上,使用“1”作为根分区,使用 / 并使用 2 表示其余分区。所有标有“2”的分区都会按顺序检查,您无需指定顺序。

使用“0”禁用在启动时检查文件系统或网络共享。

它没有明确提及大于 2 的值,但暗示012是唯一可用的值。

其他来源(例如fsck 手册页)暗示上述值0将以升序处理(“大于零的 passno 值将按顺序检查”)

是否可以使用大于 2 的值?

Cod*_*ing 7

答案是……这取决于情况,但可能不是。

TL;DR如果您使用systemd,非零传递数字将按照它们出现在 中的顺序进行检查fstab。如果不是systemd,则将按升序顺序检查通过编号,并且可以使用大于 2 的值。

在大多数 Linux 发行版上,fsck二进制文件由util-linux. 这fsck 接受大于 2 的通行证编号,并且这些通行证将按顺序处理。

任何fsck直接调用的系统都会理解 中大于 2 的“pass number”值fstab

事实证明util-linuxsfsck并不总是用于检查fstabsystemd维护自己的fsckCalled内部副本,该副本按照出现的顺序systemd-fsck处理任何非零条目(具体来说,它不会在其他条目之前扫描您的通行证号码条目)。fstab1

在使用 的 Linux 发行版上systemdsystemd-fsck用于自动文件系统检查,在这些情况下,通行号被视为布尔值0is 表示“假”或“不验证”,!= 0为 true 或“验证”)。

另外,不要忘记/有时会单独检查根驱动器(安装)。

非常感谢Ned64 ,他在回答中做了很多研究。