硬盘诊断工具如何知道某个扇区是否有坏?

硬盘诊断工具如何知道某个扇区是否有坏?

当我遇到可能出现故障的硬盘时,我会使用维瓦德,它可以可靠地让我知道驱动器是否需要更换。

这些工具是如何工作的?它们如何区分坏扇区和好扇区?

答案1

现代硬盘在固件中实现了一个系统,称为聪明的该系统收集驱动器性能的统计数据,并通过将数据移出坏扇区来自动避免数据丢失。

诊断工具查询硬盘的 SMART 软件来构建健康检查报告。

在访问硬盘时会检测到坏扇区,并由 SMART 系统避免和重新定位坏扇区。

答案2

我不了解 ViVARD 所以这是一个一般性的答案。

聪明的

SMART 是大多数现代硬盘的一部分。当硬盘发现坏扇区、寻道或旋转时间超过正常值时,它会记录下来。这些都是硬盘出现故障的指标。

硬盘挽救故障扇区的方法是基于纠错码(通常是 Reed-Solomon),如果有几个位出错,它可以挽救。如果有很多位出错,硬盘会通过反复读取扇区来尝试挽救。当它最终纠正错误时,它会将其保存到备用扇区之一。

阅读领域

硬盘将有读取错误的扇区重新分配到为此保留的一组备用扇区。操作系统通常看不到这一点,但会认为整个硬盘没有错误。只有当没有更多扇区可重新分配(或扇区无法挽救)时,操作系统才会看到损坏的扇区。

但可以绕过错误纠正(我相信每个型号都不同 - 也许 ViVARD 会这样做?)。这样您就可以读取驱动器上的实际数据。通过读取这些数据,您将能够看到哪些扇区有错误 - 即使操作系统没有发现任何错误。

答案3

使用聪明的硬盘制造商应该在其网站上提供该软件的下载。使用 SMART 时 - 运行完整扫描。

答案4

如果我要编写这样的诊断程序,我的程序将按照以下步骤逐个扇区地检查驱动器:

  1. 将扇区中的当前数据移动到新的(当前为空的)位置进行保存(并更新使用该扇区的任何文件表)。
  2. 将已知的新数据写入扇区。
  3. 从扇区读取写入的数据。
  4. 将写入的内容与读取的内容逐位进行比较。
  5. (假设步骤 4 通过)将原始数据移回原始位置(以避免文件碎片)。

当然,这只是一种幼稚的说法。我怀疑如今使用的算法可以使这一一般过程更加高效。此外,工具对“已知新数据”使用不同的模式,并有不同程度的重复。

相关内容