硬盘上的所有坏块都一样吗?

硬盘上的所有坏块都一样吗?

我对硬盘坏块背后的物理原理不太了解,但我经常看到,当你用某些东西(任何东西,零都可以)覆盖“坏”块时,它就会变成好块。我甚至编写了自己的工具就是这样的。带有/P:1开关的 Windows 命令行格式实用程序也会执行相同的操作。我认为在这种情况下,这只是一个 CRC 错误(知道驱动器确实存储了每个扇区的校验和)

但是我想知道这有多可靠。也许某个位卡在 0 上,当所有位都清零时,它看起来是“好的”,但在实际使用中,它正常工作的几率只有 50/50。或者也许某个位总是与其相邻的位一起设置,等等。

在另一个互联网论坛上,主流观点似乎是坏块有两种类型 - “软”坏块(实际上是校验和错误,可以安全地纠正,不会影响驱动器的使用寿命)和“硬”坏块,它们是驱动器板上的微裂缝,会使扇区始终无法读取,无论多少次覆盖都无济于事。此外,驱动器的质量可能会迅速下降。

如果这是真的,那么就很容易区分真正有问题的驱动器和只是不幸出现错误校验的好驱动器。不幸的是,我已经长大了,不再相信童话故事了。

我有一个类似的想法记忆测试这对 HDD 也会产生同样的影响(写入不同的模式,可能要写入多次,然后读取它们进行检查),但我也想知道这样做是否有意义。如果其他论坛上的人说得对呢?

有人知道吗?

答案1

可能发生的情况是驱动器固件在后台“重新映射”坏扇区。现代硬盘驱动器有备用扇区,它们会为此目的保留备用扇区。备用扇区的数量有限,SMART 数据可以告诉您某些驱动器的剩余容量即将耗尽。

然而,如果不拆卸和检查硬盘固件,没人能够真正知道发生了什么。

有一些像badblocksLinux 这样的实用程序可以写入每个扇区并读回。

大多数物理数据介质都具有相当大的错误率,这些错误率可以通过使用前向纠错码等来隐藏。您现在的硬盘上可能有数千个错误,但由于驱动器为每个扇区写入冗余数据,因此它永远不会报告错误,您也永远不会知道。

答案2

当典型的机械硬盘遇到它认为是坏扇区的东西时,它会采取几种不同的措施之一。SpinRite 的作者经常谈论他编写的名为 SpinRite 的程序中的一些功能。

基本上,典型的硬盘驱动器能够通过错误检查来确定其是否能够读取数据。如果遇到错误,它能够将错误纠正到一定位数。

SpinRite 所做的基本上是多次询问 HDD 是否能够读取数据。如果 HDD 能够读取数据,SpinRite 会将数据移至不同的扇区,这允许 HDD 最终将前一个扇区标记为坏扇区,这就是它能够为您恢复数据的方式。

在另一个互联网论坛上,主流观点似乎是坏块有两种类型 - “软”坏块(实际上是校验和错误,可以安全地纠正,不会影响驱动器的使用寿命)和“硬”坏块,它们是驱动器板上的微裂缝,会使扇区始终无法读取,无论多少次覆盖都无济于事。此外,驱动器的质量可能会迅速下降。

因此,要么是盘片本身的物理不可恢复缺陷,要么是已知可恢复缺陷,或者更好地描述盘片可以而且将是 99.999% 完美的事实。

我有一个想法,想开发一个类似于 memtest 的实用程序,它可以对硬盘驱动器执行相同的操作(写入不同的模式,可能多次,然后读取它们进行检查),但我也想知道这样做是否有意义。如果其他论坛上的人说得对呢?

除了这个程序已经存在(SpinRite)的事实之外,听起来你对 HDD 的内部工作原理了解不够,甚至无法编写这个实用程序。

SpinRite 之所以如此优秀,是因为它早期拥有对错误检查进行逆向工程的能力。

如果这是真的,那么就很容易区分真正有问题的驱动器和只是不幸出现错误校验的好驱动器。不幸的是,我已经长大了,不再相信童话故事了。

它与校验和关系不大,而与错误检查和错误纠正关系更大,请做更多的研究。

答案3

我使用 spinrite 检查硬盘是否有缺陷。到目前为止,我对它很满意。因为它禁用了硬盘中的任何错误纠正,这样就会出现真正的坏块。

答案4

这个答案包含猜测和观点,有趣多于事实。

http://www.seagate.com/staticfiles/support/seatools/user%20guides/SeaToolsDOSguide.EN.pdf 写于 2010 年左右

根据设计,现代磁盘驱动器会保留备用扇区以供重新分配。 通常,扇区在被读取之前很久就变得难以读取了。 变得无法阅读。在这种情况下,扇区中的实际数据字节将被保留,并在扇区重新分配期间传输到新的备用扇区。同样,当磁盘驱动器写入数据并遇到问题时,驱动器固件会淘汰问题扇区并激活替换扇区,然后给出成功写入状态。

从这个逻辑上讲,任何由硬件标记出来的“真正的”新坏扇区,很可能曾经出现过“真正的”问题,不应重新测试和重新使用,因为它是一个等待发生的问题,就像最初标记出来的坏扇区一样。
少数“坏”项目占用的空间非常小,通常不值得考虑使用它们。

重新测试实用程序是否应该在多种条件下测试扇区?是的,它应该,为什么不呢,它需要一点额外的时间来确认对该扇区的多次不同写入是可读的,并且不会影响该区域的总数。此外,为什么不在同一位置对一大堆扇区进行检查,看看该区域是否有任何实际损坏,或者当时只是侥幸?

- http://www.seagate.com/staticfiles/support/samsung/docs/M2%20Portable%20Series%20User%20Manual%20EN%20Rev00%20110428.pdf

如果对外部驱动器造成影响,可能会导致磁盘出现坏扇区。坏扇区可能会导致各种潜在的读/写错误。

撞击坏扇区似乎总是成群出现在相似的区域,并且坏扇区会从该区域不断增加。人们应该能够从这些坏扇区的分组中了解实际的磁头撞击对表面造成的损坏。任何对某个区域的实际物理损坏,都会释放出该区域的任何颗粒,这些颗粒必须被甩掉并过滤掉。
从所有其他信息来看,任何磁头撞击损坏也可能导致磁头本身变得更糟?如果新坏扇区成群出现,我认为我不想依赖该驱动器,但我的驱动器通常根本没有很多(显示的)新的重新映射扇区。


功率波动、静电感应、干扰、原子大小颤动、温度、数据密度,我想知道硬件本身在“不太理想”的情况下是否“某些扇区”出现错误,无论如何它们仍然是“最糟糕的”。当制造商自己的测试注销坏的原始扇区时,他们是否会回过头来说“嗯,建筑物中的交流电已打开,或者我们在背景辐射中出现了通量,所以让我们重新测试一下?” :-) 或者他们认为“在任何条件下”其余的都可以工作,而这个却不行?

如果有办法确定各个区域是否损坏、是否因表面损坏或表面缺陷而造成损坏,则应该对标记为坏的区域进行分组。啊啊啊啊

我认为只有硬盘制造商才能正确回答这个问题,其他数据表远远超出了我的技术水平。 在 SeagateWD 似乎更坚持简单化。

我所能做的最多的就是我所看到和经历过的事情以及它们提供的数据。有时这些东西被认为是坏的,我重复使用它,它从来没有出现过问题,我当时知道这是我自己的软件/硬件问题。如果这是我造成的损坏,我希望它注销那里的所有 15 个轨道,再也不会经过整个区域 :-)。当查看驱动器内部时,我感到很困惑,它们是完美的,按照这张图片,我们看到分子丘头试图飞过去。磁力显微镜?

如果硬盘制造商确实知道所有答案,那么它就无法解释所有收到重新测试的再制造硬盘作为替代品并出现问题的愤怒用户。一些用户确实是问题所在,但不是全部。

按照此图看到“弱脑袋”的想法
0 秒与否,我怀疑这很重要写得很完整

相关内容