我在嵌入式设备上运行 Ubuntu 20.04。我想问一下如何在启动时强制自动fsck?在较旧的 Ubuntu 版本中,这可以通过编辑 /etc/default/rcS 并设置 FSCKFIX=yes 来实现。但是,我在较新的 Ubuntu 中读到,不再使用此文件。那么,为较新的 Ubuntu 在启动时启用自动 fsck 的方法是什么?
我在嵌入式设备上运行 Ubuntu 20.04。我想问一下如何在启动时强制自动fsck?在较旧的 Ubuntu 版本中,这可以通过编辑 /etc/default/rcS 并设置 FSCKFIX=yes 来实现。但是,我在较新的 Ubuntu 中读到,不再使用此文件。那么,为较新的 Ubuntu 在启动时启用自动 fsck 的方法是什么?
自从接管初始化以来,创建文件
/forcefsck
以强制在重新启动时检查文件的旧方便技巧不再起作用。systemd
更改“最大挂载数”(仅限 ext 文件系统)
最快的方法可能是暂时将您的更改
Maximum mount count
为1
. 这将导致内核并e2fsck
在下次重新启动时检查文件系统。但是,这只适用于 ext 文件系统。首先检查您当前的设置,以防您以后想恢复为默认设置:
替换
/dev/nvme0n1p2
为系统分区的设备名称。现在有可能将其设置为-1
,禁用基于卷已安装次数的检查。1
使用以下命令调整设置:现在重新启动 - 应该检查音量。重新启动后,您应该将值重置为之前的值,以避免每次都检查分区。
更改内核参数
另一种方法是在引导期间传递内核参数,以控制用于文件系统检查的 systemd 服务。
fsck.mode=force
将强制进行文件检查。要一次性添加内核参数,请引导至 Grub 菜单,突出显示条目并点击e. 移动到以 开头的行
linux
,点击End移动到最后一行,添加一个空格和内核参数。点击Ctrl+x关闭并继续启动。如果您想在每次重新启动时强制 fsck,您需要遵循几个步骤。
blkid
标识分区的 uuid。/etc/fstab
最后一列是第 6 列,即 fsck PASS 列,fsck 使用它来确定 fsck 是否应在挂载文件系统之前检查文件系统,以及应以何种顺序检查 /etc/fstab 中的给定分区
对于根分区,确保条目设置为 1
解释:
基本上,在第 1 步中,您确定要在启动时检查哪个分区。
在第 2 步中,您要确保它需要更高的优先级。如果您要检查多个分区,这很有用。它决定应该首先处理哪个,然后是第二个,依此类推。
在第 3 步中,您是说在挂载多少次后应该检查分区。参数 1 指定在一次挂载后应该检查分区。所以基本上它在每次安装后检查,即每次重新启动后。
在root权限下:
您不必删除
/forcefsck
,因为系统会将其删除。