即使你从未有过不洁的关闭,为什么FSCK会运行?


0

AFAIK会FSCK在电源故障等不正常关机的情况下检查并修复文件系统(我不确定)。我有一台服务器,从来没有不干净的关闭,但FSCK在几个月后仍在某些时候运行。即使你从未有过不洁的关闭,FSCK真的需要吗?

Answers:


2

man 8 tune2fs 实际上回答了你的问题:

-c max-mount-counts

调整安装次数,然后e2fsck(8)将检查文件系统。如果max-mount-counts为0或-1,则e2fsck(8)和内核将忽略文件系统的挂载次数。

错误地强制检查文件系统的挂载计数将避免在使用日志文件系统时一次检查所有文件系统。

您应该强烈考虑完全禁用依赖于mount-count的检查的后果。糟糕的磁盘驱动器,电缆,内存和内核错误都可能破坏文件系统而不会将文件系统标记为脏或出错。如果您在文件系统上使用日记功能,则文件系统永远不会标记为脏,因此通常不会检查它。内核检测到的文件系统错误仍然会在下次重新启动时强制执行fsck,但在此时防止数据丢失可能已经太晚了。

另请参阅-i选项以进行与时间相关的检查。

-i 间隔 - 检查[d | m | w]

调整两个文件系统检查之间的最长时间。没有后缀或d会将检查间隔间隔为天,m为月,w为周。值为零将禁用与时间相关的检查。

强烈建议 启用-c(依赖于mount-count)或-i(依赖于时间)检查以强制定期对文件系统进行完整的e2fsck(8)检查。如果不这样做可能会导致文件系统损坏(由于坏磁盘,电缆,内存或内核错误)被忽视,最终导致数据丢失或损坏。


至于查找在您自己的ext2 / ext3 / ext4文件系统上设置的检查频率(在最大挂载计数检查间隔之间的阈值之后),您可以运行以下命令:

sudo dumpe2fs /dev/YOURDEV | grep -Ei '(mount count|interval|check)'

替换/dev/YOURDEV为要检查的分区。

样本输出:

deltik@node51 [~]$ sudo dumpe2fs /dev/nvme0n1p3 | grep -Ei '(mount count|interval|check)'
dumpe2fs 1.42.13 (17-May-2015)
Mount count:              1
Maximum mount count:      -1
Last checked:             Tue Mar 15 13:30:00 2018
Check interval:           0 (<none>)

2

即使你从未有过不洁的关闭,FSCK真的需要吗?

那要看。您能100%确定在文件系统下面的存储系统中永远不会有任何数据损坏吗?

作为一般规则,文件系统检查在某些文件系统(特别是较旧的文件系统,最常见的是ext4)上的不正常关闭后在功能上是强制性的,但是不正常关闭不是唯一可能导致文件系统内部数据结构损坏的情况。非灾难性设备故障(坏扇区,坏固件等)可能导致完全相同类型的损坏,因此即使您的系统没有崩溃或断电,通常最好每时检查一次。

这对ext4特别重要,因为:

  • 使用日记功能时(如果您不知道自己是否正在使用日记功能,则可能是这样),否则文件系统可能永远不会被检查,因为即使在不正常关闭后,也会假设日志文件系统是自我一致的。
  • 在运行时遇到文件系统元数据中的错误时的默认行为是简单地记录问题并继续,就像没有发生任何事情一样。这意味着与其他文件系统(例如,XFS,BTRFS或ZFS)相比,如果文件系统出现问题,则不太可能发现问题,直到修复它为时已晚。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.