关于磁盘清理的引导消息:是否表示磁盘损坏?

Yak*_*sha 5 format partitioning boot disk

每次在启动过程中,以下消息都会使启动画面消失一段时间并出现:

/dev/sda2: clean 185146/6553600 files, 1331445/26214400 blocks
Run Code Online (Sandbox Code Playgroud)

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

甚至在我格式化磁盘之前就会出现此消息。现在,即使在解散所有分区、删除所有操作系统、创建新分区和全新安装之后,这种情况仍然存在。虽然全格式化后磁盘性能有所提升。

Ser*_*nyy 7

您看到的消息来自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
Run Code Online (Sandbox Code Playgroud)

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

第六字段(fs_passno)。

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

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

顺便说一句,您看到的输出行对于它实际所说的内容有些误导。您看到的是inode计数,而不是实际文件。将上面看到的输出fsckdf -i

$ df -i | grep 'sdb6'                                                                                                        
/dev/sdb6      26566656   4580 26562076    1% /mnt/HDD
Run Code Online (Sandbox Code Playgroud)

说到运行状况,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 Max Mount Count 检查可能已默认禁用,早在 2011 年,并且正如 mikewhatever对相关问题的回答和问题中引用的une2fs(8)文档中提到的,还有其他潜在原因fsck出现启动时(文件系统、电缆或故障 HDD 扇区等的不干净卸载)。


旁注:存在一个问题,例如这个问题,操作系统在看到消息后挂起/dev/sda1: clean,应该注意的是,消息和启动问题并不相关 - 在许多情况下,这是安装的图形模块的问题,特别是在英伟达驱动程序。


归档时间:

查看次数:

10791 次

最近记录:

4 年,11 月 前