每次启动时,都会在启动画面消失一段时间后出现以下消息:
/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
(前提是您有权限sudo
或root
有权编辑这些重要的系统文件)。但是,我不建议这样做,因为毕竟它显示了文件系统的健康状况。
顺便说一句,你看到的输出行有点误导它实际上说了什么。您看到的是索引节点,而不是实际文件。将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 驱动程序的情况下。