当我遇到可能出现故障的硬盘时,我会使用维瓦德,它可以可靠地让我知道驱动器是否需要更换。
这些工具是如何工作的?它们如何区分坏扇区和好扇区?
答案1
现代硬盘在固件中实现了一个系统,称为聪明的该系统收集驱动器性能的统计数据,并通过将数据移出坏扇区来自动避免数据丢失。
诊断工具查询硬盘的 SMART 软件来构建健康检查报告。
在访问硬盘时会检测到坏扇区,并由 SMART 系统避免和重新定位坏扇区。
答案2
我不了解 ViVARD 所以这是一个一般性的答案。
聪明的
SMART 是大多数现代硬盘的一部分。当硬盘发现坏扇区、寻道或旋转时间超过正常值时,它会记录下来。这些都是硬盘出现故障的指标。
硬盘挽救故障扇区的方法是基于纠错码(通常是 Reed-Solomon),如果有几个位出错,它可以挽救。如果有很多位出错,硬盘会通过反复读取扇区来尝试挽救。当它最终纠正错误时,它会将其保存到备用扇区之一。
阅读领域
硬盘将有读取错误的扇区重新分配到为此保留的一组备用扇区。操作系统通常看不到这一点,但会认为整个硬盘没有错误。只有当没有更多扇区可重新分配(或扇区无法挽救)时,操作系统才会看到损坏的扇区。
但可以绕过错误纠正(我相信每个型号都不同 - 也许 ViVARD 会这样做?)。这样您就可以读取驱动器上的实际数据。通过读取这些数据,您将能够看到哪些扇区有错误 - 即使操作系统没有发现任何错误。
答案3
使用聪明的硬盘制造商应该在其网站上提供该软件的下载。使用 SMART 时 - 运行完整扫描。
答案4
如果我要编写这样的诊断程序,我的程序将按照以下步骤逐个扇区地检查驱动器:
- 将扇区中的当前数据移动到新的(当前为空的)位置进行保存(并更新使用该扇区的任何文件表)。
- 将已知的新数据写入扇区。
- 从扇区读取写入的数据。
- 将写入的内容与读取的内容逐位进行比较。
- (假设步骤 4 通过)将原始数据移回原始位置(以避免文件碎片)。
当然,这只是一种幼稚的说法。我怀疑如今使用的算法可以使这一一般过程更加高效。此外,工具对“已知新数据”使用不同的模式,并有不同程度的重复。