有关磁盘清理的启动信息:它可以表示磁盘坏了吗?

有关磁盘清理的启动信息:它可以表示磁盘坏了吗?

每次启动时,都会在启动画面消失一段时间后出现以下消息:

/dev/sda2: clean 185146/6553600 files, 1331445/26214400 blocks

由于这是一个旧驱动器,这是否表明磁盘存在故障?

在我格式化磁盘之前,这个消息就会出现。现在,即使解散所有分区、删除所有操作系统、创建新分区并全新安装后,这个消息仍然存在。尽管完全格式化后磁盘性能有所改善。

答案1

您看到的消息来自fsck文件系统检查和修复实用程序的输出(参见最后一行):

$ sudo fsck -V /dev/sdb6                                                                                                     
[sudo] password for xieerqi: 
fsck from util-linux 2.27.1
[/sbin/fsck.ext4 (1) -- /mnt/HDD] fsck.ext4 /dev/sdb6 
e2fsck 1.42.13 (17-May-2015)
/dev/sdb6: clean, 4580/26566656 files, 38351198/106257408 blocks

这意味着你的 Ubuntu 在启动时会执行检查,并且实际上是在你的 中配置的/etc/fstab。如 中所述man fstab

第六个字段(fs_passno)。

fsck(8) 使用此字段来确定启动时文件系统检查的顺序。根文件系统应指定为 fs_passno 1。其他文件系统应指定为 fs_passno 2。驱动器内的文件系统将按顺序检查,但不同驱动器上的文件系统将同时检查以利用硬件中可用的并行性。如果不存在,则默认为零(不进行 fsck)。

这回答了几个问题,即为什么会发生这种情况以及如何消除它。基本上,因为它会检查你的根文件系统,我猜它是打开的,/dev/sda2并且你要么有 Windows 分区,/dev/sda1要么有交换分区用于虚拟内存。当然,你可以禁用启动时检查制作最后一列0(前提是您有权限sudoroot有权编辑这些重要的系统文件)。但是,我不建议这样做,因为毕竟它显示了文件系统的健康状况。

顺便说一句,你看到的输出行有点误导它实际上说了什么。您看到的是索引节点,而不是实际文件。将fsck上面的输出与以下内容进行比较df -i

$ df -i | grep 'sdb6'                                                                                                        
/dev/sdb6      26566656   4580 26562076    1% /mnt/HDD

说到健康,systemctl -a /dev/sd<LETTER><INTEGER>通常首选检查驱动器的健康状况,并通过 VALUE 列中的内容与 THRESH 列的接近程度来表示。


另一种方式间接禁用启动时检查fsck是为了更改执行这些检查的时间段。从tune2fs(8)

-C最大挂载次数

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

因此,您可能要做的就是运行tune2fs -c -1 /dev/sda以禁用这些消息。

然而,根据lwn.net 最大挂载数检查可能早在 2011 年就已默认禁用就像 mikewhatever 提到的相关问题的答案以及所引述tune2fs(8)问题中的文档,还有其他潜在原因导致fsck在启动时出现(文件系统未干净卸载、电缆或硬盘扇区故障等)。


附注:还有一些问题,例如这个,操作系统在看到该/dev/sda1: clean消息后会挂起,需要注意的是,该消息和启动问题无关 - 在许多情况下,这是安装的图形模块的问题,特别是在 Nvidia 驱动程序的情况下。

相关内容