在未指定选项的情况下,是什么让 ext3 确定执行文件系统检查的频率?

在未指定选项的情况下,是什么让 ext3 确定执行文件系统检查的频率?

我在 1.5 TB 驱动器上创建了两个分区,第一个分区是 1 TB,后者是剩余的 0.5 TB。两者都格式化为 ext3。我不介意自动文件系统检查经常发生,所以我从不费心配置它的频率。我发现奇怪的是,它决定对 1 TB 分区每 39 次安装进行一次自动检查,对 0.5 TB 分区每 27 次安装进行一次自动检查。我尝试查看手册页以及各种论坛,但我找不到任何有关它如何确定文件系统检查频率的提及。我认为这是一个简单的公式,所以有人知道它是什么吗?

答案1

Linux 的好处是源代码总是在某个地方。你可以下载或者看法kernel.org 上的基本 e2fsprogs 源代码。这也可能取决于您的具体版本和发行版...

enable_periodic_fsck = 1从当前代码来看,如果您的 mke2fs.conf 中有的话,它看起来像是根据分区的 UUID 添加到 20 的一些值

mke2fs.c

if (get_bool_from_profile(fs_types, "enable_periodic_fsck", 0)) {
    fs->super->s_checkinterval = EXT2_DFL_CHECKINTERVAL;
    fs->super->s_max_mnt_count = EXT2_DFL_MAX_MNT_COUNT;
    /*
     * Add "jitter" to the superblock's check interval so that we
     * don't check all the filesystems at the same time.  We use a
     * kludgy hack of using the UUID to derive a random jitter value
     */
     for (i = 0, val = 0 ; i < sizeof(fs->super->s_uuid); i++)
         val += fs->super->s_uuid[i];
     fs->super->s_max_mnt_count += val % EXT2_DFL_MAX_MNT_COUNT;
 } else
     fs->super->s_max_mnt_count = -1;

mke2fs.h

:#define EXT2_DFL_MAX_MNT_COUNT              20

很高兴在代码中看到“kludgy”和“hack”这两个词=)

答案2

查看、 以及默认值mke2fs(8)的内容。/etc/mke2fs.conf(5)

答案3

您必须使用该tune2fs命令设置各种参数,例如安装数量或 FS 健全性检查之间的天数。

您还可以用来tune2fs -l /dev/device显示有关文件系统的当前信息

相关内容