我们有已经运行很长时间的服务器。当他们重新启动时,我们会看到以下消息:
内核:EXT4-fs(sda3):警告:已达到最大安装计数,建议运行 e2fsck
我的问题是:如果您从未运行过 e2fsck 怎么办?手册页没有提供足够的说明。警告消息显示“建议”,但并未说明这是强制性的。
不运行会有什么后果?
达到最大计数意味着什么?
答案1
ext* 文件系统在元数据中有几个值;在检查文件系统之前可以安装多少次,以及检查之间应允许多长时间。
可以使用命令检查这些值dumpe2fs
;例如
% sudo dumpe2fs -h /dev/vdb | egrep -i 'check|mount count'
dumpe2fs 1.42.9 (28-Dec-2013)
Mount count: 15
Maximum mount count: 25
Last checked: Sun Jan 2 22:03:00 2022
Check interval: 15552000 (6 months)
Next check after: Fri Jul 1 23:03:00 2022
这表示文件系统已经挂载了 15 次,需要在挂载 25 次后进行检查;应每 6 个月进行一次检查;上次检查是 2022 年 1 月,因此下一次检查应该是 2022 年 7 月。
tunefs
这些值可以使用命令 (-i
和) 选项进行更改-c
。
并且它们可以被关闭。例如
% sudo dumpe2fs -h /dev/vda3 | egrep -i 'check|mount count'
dumpe2fs 1.42.9 (28-Dec-2013)
Mount count: 138
Maximum mount count: -1
Last checked: Sun Jul 12 17:23:17 2015
Check interval: 0 (<none>)
这基本上是说“永远不应该检查磁盘”。
现在的问题是;我们应该定期运行它吗?
本质上,定期检查的基本原理是尝试发现文件系统的不一致之处并尝试修复它们。在不会异常关闭(例如崩溃、电源故障)的现代系统上,风险很小,因此可能不需要这样做。
事实上,在大型文件系统或具有大量文件的文件系统上,这可能需要很长时间!可能几个小时!
相反,在具有正确条目的小型文件系统上,/etc/fstab
可以在重新启动时自动发生,并且只会稍微减慢重新启动的速度。
因此,您可能希望通过检查小型文件系统,fstab
但不允许大型文件系统或包含大量文件的文件系统。
例如,Red Hat 建议“一般来说,Red Hat 不建议禁用 fsck,除非机器无法启动、文件系统非常大或文件系统位于远程存储上”。 (https://access.redhat.com/solutions/281123)