tune2fs -i 用于设置基于时间的强制文件系统自检间隔,单位支持d(天)、w(周)、m(月,按30天计),设为0则禁用时间检查;该设置与-c挂载次数策略并行生效,任一条件满足即触发fsck。

tune2fs -i 用于设置两次强制文件系统自检之间的时间间隔,不是“两次自检之间”的最大间隔(因为自检本身不重复执行,而是按设定周期或挂载次数触发),而是控制 下一次强制检查的最晚时间点——即从当前时间起,超过该间隔后若系统重启,就会触发 fsck。
这个参数影响的是“基于时间的检查策略”,和 -c(基于挂载次数)是并行生效的,任一条件满足即触发自检。
查看当前时间检查设置
tune2fs -l /dev/sdXN | grep -E "Check interval|Maximum mount count"
输出中会显示类似:
Check interval: 180 days (6 months) Maximum mount count: 30
说明默认是每 180 天或挂载 30 次就检查一次。
使用 -i 设置时间间隔
语法格式为:
tune2fs -i <interval> /dev/sdXN
其中 <interval> 支持三种单位:
-
d:天(如30d) -
w:周(如4w表示 28 天) -
m:月(如6m表示约 180 天,按 30 天/月计算)
⚠️ 注意:
m是近似单位,内核按30 * 24 * 3600秒计算,不按日历月长度(如 31 天或闰年)。
常见设置示例:
-
每 7 天检查一次
tune2fs -i 7d /dev/sdb1
-
每 2 周检查一次
tune2fs -i 2w /dev/sdb1
-
每半年检查一次(默认值)
tune2fs -i 6m /dev/sdb1
-
永久禁用时间检查(仅保留挂载次数策略)
tune2fs -i 0 /dev/sdb1
✅ 提示:设为
0后,Check interval显示为0 (<none>),表示不启用时间维度检查。
时间检查的实际触发逻辑
- 系统在每次成功挂载时,会记录挂载时间(
Last mounted)和上次检查时间(Last checked)。 - 下次启动前,若满足:
当前时间 - 上次检查时间 ≥ 设定的 Check interval,
且该分区被标记为需要检查(例如e2fsck未跳过),则启动时自动运行fsck。 - 即使没重启,只要
tune2fs -i修改了间隔,下次检查时间也会重新计算(基于Last checked时间 + 新间隔)。
配合使用建议
-
若你希望完全关闭开机自检(不依赖时间也不依赖挂载次数):
tune2fs -i 0 -c 0 /dev/sdb1
-
若只想推迟检查(比如延长到一年):
tune2fs -i 12m /dev/sdb1
-
修改后可立即验证:
tune2fs -l /dev/sdb1 | grep -A1 "Check interval"
该操作无需卸载分区(但建议在非根分区上先测试;修改根分区时推荐在 rescue 模式或单用户模式下进行)。


















