操作系统是CentOS 5。
通常,在非正常关机后,CentOS 启动文本将显示有关由于非正常关机而需要进行 fsck 的信息。(我不记得确切的文本了)
另外,如果您在一定天数内没有进行 fsck,则会显示“强制检查”消息,并且机器将进行 fsck。
但是如果两个条件都成立呢?机器非正常关机并且已经 1000 天没有进行 fsck,启动时会打印哪条消息?
我为什么需要知道?我需要知道跳过 fsck 是否安全。这种情况并不经常发生,但确实会出现。当然他们应该使用 xfs,当然事情应该是多余的,但这是现实生活。有时你会遇到这样的情况,fsck 需要 10 个小时,而每一分钟都是停机时间。(我个人会说永远不要跳过 fsck,但这不是我的要求)
答案1
根据e2fsck/unix.c
e2fsprogs 来源(删减重要部分)
if ((fs->super->s_state & EXT2_ERROR_FS) || !ext2fs_test_valid(fs))
reason = _(" contains a file system with errors");
else if ((fs->super->s_state & EXT2_VALID_FS) == 0)
reason = _(" was not cleanly unmounted");
else if (check_backup_super_block(ctx))
reason = _(" primary superblock features different from backup");
else if ((fs->super->s_max_mnt_count > 0) ...
reason = _(" has been mounted %u times without being checked");
else if (!broken_system_clock && fs->super->s_checkinterval ...
reason = _(" has filesystem last checked time in the future");
else if (!broken_system_clock && fs->super->s_checkinterval ...
reason = _(" has gone %u days without being checked");
如您所见,这是 if/else if 条件的列表。它们会从上到下进行检查,并且只显示找到的第一个原因。
你可以放心,不干净的文件系统将会被指示为
答案2
如果您真的陷入困境,我建议您从 CD/DVD 启动到救援模式,在文件系统上运行“tune2fs -i 0 -c 0”,然后重新启动。这样,如果文件系统是干净的,它就会挂载。如果它很脏,它将通过 fsck。