我目前正在扫描一些旧驱动器以检测错误。
如果你用 Google 搜索机械旋转磁盘(而非 SSD)上的坏扇区检测,你通常会遇到:
视窗
chkdsk/r drive:
linux(可能有不同的论点
badblocks -wsv /dev/drive > file
然后将该文件传递给文件系统以免使用这些块。
但现代硬盘会保留一定量的空闲空间来自动重新分配这些空间。
所以我说得对吗?如果磁盘正常工作,这些坏块无论如何都不会出现在坏块或 chkdsk 测试中,因为它们将被重新分配。测试仍然有助于识别驱动器的块,但直到没有扇区可以重新分配时才会显示任何有用的信息。
您应该真正关注驱动器 SMART 信息中的重新分配扇区。
但是有没有办法知道:
- 驱动器为此次重新分配保留了多少个备用扇区
- 同样,多少次重新分配是可以接受的。我猜你在这里寻找的是增长率来显示问题?
- 如果您正在编写一些有关重新分配的监控脚本,那么您将如何设置这些参数。
或者我错过了重点?
TL;DR 假设驱动器在某个时刻会用尽重新分配的扇区。当这种情况发生时,您将如何编写脚本来发送警告,以便您开始告诉文件系统考虑坏块(假设变化率不足以表明存在重大故障)。
答案1
(你如何发现)驱动器为这次重新分配保留了多少个备用扇区?
我不知道对于旋转盘片驱动器执行此操作有任何标准方法。
实际上,这并不重要。如果旋转盘片硬盘出现不止几个缺陷,它可能会造成灾难性的故障,无论多少备用扇区都无法挽救它。
(SSD 具有非常不同的故障模式 - 使用备用容量是正常的老化行为。它们通常将该值显示为 Unused_Reserve_NAND_Blk SMART 参数。)
同样,多少次重新分配是可以接受的。
零,或者最多 1-10。如果超过这个数字,通常就是即将失败的征兆。
答案2
How many spare sectors the drive is keeping back for this reallocation?
我观察到的数量在 100-300 之间,我想象 10tb 可能有 1000 个左右。
Similarly, how many reallocations is acceptable. I guess you're looking for a rate of increase here to show problems?
拥有多个备用扇区并不是一个好主意,但是当所有备用扇区都用完时,BIOS 就会报告严重的 SMART 错误。
问题出在坏块不应该对文件系统不可见,因为 SMART 应该导致硬盘驱动器消耗硬盘驱动器制造商提供的备用扇区。这些扇区对文件系统不可见。
但是,SMART 功能似乎并不总是能发挥作用,我发现很多硬盘根本就拒绝让坏扇区停止服务。尽管我尝试过 SpinRite 和 mhdd。
我不知道这是为什么,但如果硬盘制造商能够避免在保修期结束前用完,他们就不必更换它。因此,用完备用扇区对他们来说并不是最好的选择。