我遇到的问题是fsck
花费的时间非常长。我在谷歌上进行了彻底的搜索,但找不到任何可以解决问题的东西。
我正在运行的命令是sudo fsck.ext4 -vc /dev/sdb1
.
我有一个 200GB SATA 硬盘,其中有一些坏扇区。它与 SMART 兼容,但是 SMART 不知何故无法重新映射扇区。我正在运行的命令将检查坏扇区并将它们添加到坏块列表中。然而,这是迄今为止的输出:
e2fsck 1.42 (29-Nov-2011)
Checking for bad blocks (read-only test): 1.95% done, 11:53:24 elapsed. (1657/0/0 errors)
按照这个速度,大概需要1个月左右。
现在不要告诉我“你的硬盘太旧了,它很快就会出现故障等等”。我只想将坏块添加到坏块列表中。硬盘驱动器没有产生任何新的坏扇区。
我的机器配备 i3 四核处理器和 8GB 内存。我的 CPU 使用率低于 10%,并且使用了大约 1.5GB 的 RAM。没有任何内容被分页。
我正在检查的磁盘有一个新创建的 ext4 文件系统,上面没有任何内容。
我只是不明白为什么要花 1 个月的时间来 fsck 磁盘并列出坏块。这里肯定有问题。有什么建议吗?
答案1
SMART 不会重新映射扇区,它只会检测并记录错误。写入时会自动重新映射坏扇区。您可以使用dd
或执行此操作hdparm --write-sector
。
如果您的驱动器无法重新映射该扇区,因为它已用完保留扇区,那么您应该在恐慌之前迈出一步。
在文件系统中重新映射它们没有多大意义。
如果hdparm -t /dev/sdb
给你合理的结果,那么你可以badblocks
单独运行(使用-s
),以检查直接运行是否更快,如果不更快,则通过 strace 运行它,以便了解性能问题的根源。
也许磁盘上的某些区域会导致大量读取重试。