fstab 的手册页对此值有这样的说明pass
:
pass(fsck命令) fsck命令是告诉fsck用什么命令来检查文件系统,如果设置为“0”则忽略文件系统。
通常会造成混乱,只有 3 个选项:
0 == 不检查。 1 == 首先检查该分区。 2 == 接下来检查此分区 实际上,使用“1”作为根分区,使用 / 并使用 2 表示其余分区。所有标有“2”的分区都会按顺序检查,您无需指定顺序。
使用“0”禁用在启动时检查文件系统或网络共享。
它没有明确提及大于 2 的值,但暗示0
、1
和2
是唯一可用的值。
其他来源(例如fsck 手册页) 意味着以上值0
将按升序处理(“passno 大于零的值将按顺序检查”)
是否可以使用大于 2 的值?
答案1
答案是……这取决于情况,但可能不是。
长话短说如果您使用
systemd
,非零通过数字将按照它们在 中出现的顺序进行检查fstab
。如果不是systemd
,则将按升序顺序检查通过编号,并且可以使用大于 2 的值。
在大多数 Linux 发行版上,fsck
二进制文件由util-linux
。这fsck
接受大于 2 的通行证号码,并且这些将按顺序处理。
任何直接调用的系统fsck
都会理解 中大于 2 的“pass number”值fstab
。
事实证明util-linux
sfsck
并不总是用于检查fstab
。systemd
维护自己的内部fsck
副本systemd-fsck
,它对待任何非零fstab
,它按照出现的顺序不是在其他人之前扫描您的通行证号码1
条目)。
在使用的 Linux 发行版上systemd
,systemd-fsck
用于自动文件系统检查,在这些情况下通行证号码是被视为布尔值(0
is 表示“假”或“不验证”,!= 0
is 表示“真”或“验证”)。
另外,不要忘记有时/
会单独检查根驱动器(安装)。
答案2
不,只有 0、1 和 2 是可能的。
从手册页(man fstab
):
第六字段(fs_passno)。 fsck(8) 使用该字段来确定引导时执行文件系统检查的顺序。根文件系统的 fs_passno 应该指定为 1。其他文件系统的 fs_passno 应该为 2。驱动器内的文件系统将按顺序检查,但不同驱动器上的文件系统将同时检查,以利用硬件中可用的并行性。如果不存在,则默认为零(不进行 fsck)。
如今(即在那个systemd
时代),似乎对 0pass_no
中的条目进行了测试(以禁用检查),只有,然后将首先检查(根)文件系统(就好像/etc/fstab
/
pass_no == 1
)。所有其他人都受到平等对待。请参见systemd/fsck.c 源和systemd//fstab-generator.c 源了解详细信息(或者更确切地说,缺少pass_no
except 针对 0 的测试)。
这意味着虽然您可以编写其他数字(例如 17),但这些数字只会针对 0 进行测试,否则精确值将被忽略。