tune2fs -t 仅修改 last checked 时间戳,不直接设置下次自检绝对时间;下次检查时间由 last checked + check interval 动态计算得出,超期即触发 fsck。

tune2fs -T 不能直接设置“下一次必须自检的绝对时间点”,它只修改文件系统元数据中的 Last checked(上次检查时间) 字段。真正的“下次检查时间”由系统在运行时动态计算:Last checked + Check interval,再与当前时间比较,超期即触发 fsck。
所以,要让自检发生在某个目标时间(比如 2026-06-01T00:00:00),你得反推并设置合适的 Last checked 时间。
查看当前基准信息
先确认设备当前的检查策略和时间基准:
sudo tune2fs -l /dev/sdXN | grep -E "Last checked|Check interval|Maximum mount count"
输出示例:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
Last checked: Wed Apr 10 02:15:32 2026 Check interval: 15552000 (6 months) Maximum mount count: -1
注意:Check interval 必须是非零值(如 30d、6m),否则 -T 设置无效。
计算并设置 Last checked 时间
假设你想让 /dev/sdb1 在 2026-06-01 00:00:00 触发检查,且已设 Check interval = 30d:
- 30 天前是 2026-05-02 00:00:00
- 运行命令(需 root 权限,且设备最好未挂载或只读挂载):
sudo umount /dev/sdb1 sudo tune2fs -T "2026-05-02 00:00:00" /dev/sdb1
验证设置是否生效
sudo tune2fs -l /dev/sdb1 | grep "Last checked"
应显示你刚设定的时间。下次启动或手动运行 sudo fsck /dev/sdb1 时,若当前时间 ≥ Last checked + 30 days,就会强制执行。
注意事项
-
-T不改变系统时钟,也不立即触发检查,仅更新超级块里的时间戳 - 若
Check interval是0或-1,时间策略被禁用,-T设置无实际效果 - 挂载次数策略(
-c)与时间策略并行:任一条件满足即检查 - 时间格式必须严格为
YYYY-MM-DD [HH:MM:SS],空格可省略,秒可省略,但建议写全以避免歧义
常见操作组合
- 设为 90 天后检查:
sudo tune2fs -i 90d /dev/sdb1 sudo tune2fs -T "$(date -d '90 days ago' '+%Y-%m-%d %H:%M:%S')" /dev/sdb1
- 立即触发下一次检查(把 Last checked 设为 1 年前):
sudo tune2fs -T "$(date -d '1 year ago' '+%Y-%m-%d')" /dev/sdb1
不复杂但容易忽略关键逻辑:tune2fs 从不承诺“某日必检”,它只提供规则;真正决定是否检查的,是内核在挂载或启动时做的那次时间比对。










