磁盘数据损坏的原因?

fgr*_*ieu 5 windows-7 ntfs hard-drive file-corruption

最近几周,我在将文件从一个磁盘复制到另一个磁盘时发生了几起数据损坏的情况。问题是:可能是什么原因,我如何查明它?

一些线索:

  • 问题(9 例)发生在两台不同的机器上(一台 AMD 5050e 带有 ECC RAM,另一台是上网本),都运行 Win7x64 SP1,没有崩溃或其他明显问题;
  • 将大量数据(总计约 3TB)从一个磁盘复制到另一个磁盘时出现问题;
  • 使用标准 GUI(Windows 资源管理器)复制没有错误;
  • 原始文件和副本具有相同的大小和修改日期;
  • 使用 MD5 哈希(md5sum或/和 Microsoft 的FCIV)检测到数据损坏,这在副本上是错误的(原始和副本的 MD5 都是可重复的);
  • fc /B可重复地报告差异,这些差异总是在恰好 4 kiB 边界的连续块上(10 种情况:一个文件被击中两次);
  • 错误块大小不一,从 4 kiB 到 52 kiB,在看似随机的位置,在大文件(通常是几 GB)中;
  • 损坏的块与原始块没有明显的关系;在大约一半的情况下,损坏的数据全为零;
  • 所有涉及的磁盘都是 NTFS,并通过chkdsk /f(没有坏块,没有报告错误)给出了一个干净的健康清单;
  • 两个受影响的目标磁盘是 USB(HD 恰好来自同一制造商,但我不能说这很重要)
    • 一个是 2.5" 2 TB,安装在带有 HD 制造商品牌的自供电 USB 3(超高速,用于高速)外壳中;
    • 一个是基于 Linux 的多媒体机箱 (PCH A-200) 中的 3.5" 1.5 TB,带有 USB 2(高速)从端口;
  • 在超过一半的情况下,在复制后一个小时内检测到损坏,不涉及断开连接或重新启动;在大多数或所有其他情况下,目标磁盘已正确弹出;
  • 我没有理由怀疑各种源磁盘(主要是 SATA,一些 SSD)。

另外:我真的很担心找到根本原因和查明罪魁祸首,而不是解决问题。

我的理由是,与报告的技术相比,所有涉及的技术都应该具有非常低的未检测到的错误率(而且我没有错误报告)。所以

  • 如果错误触发器是磁介质(一个与观察到的 4kiB 对齐非常匹配的假设,我相信它与磁盘的内部物理扇区大小匹配),它会在某处出现一个灾难性的错误,以防止报告错误,因为它将(我从经验中知道)至少在我(不同)最喜欢的品牌的 SATA 磁盘中出现读取错误
  • 如果错误触发是 USB 电缆的电气接触不良并且未被 CRC 检测到(如答案所建议的那样);并鉴于根据此来源USB 2 最大数据包大小为 1kiB ,而不是 4kiB 作为我所有错误的对齐方式;处理错误时肯定有一些额外的错误(或者 USB 规范中的漏洞或它们处理硬盘的方式)。

Syn*_*ech 1

\n

差异始终存在于具有恰好 4 kiB 边界\xe2\x80\xa6 错误块的连续块上,其大小各不相同,从 4 kiB 到 52 kiB,在大文件中看似随机的位置

\n
\n\n

由于驱动器以块的形式写入,因此您通常会看到与连接错误而不是驱动器错误所看到的块大小错误完全相同的类型。

\n\n

我本来想问该驱动器是否是闪存盘(我不幸经历了无声的、未被发现的损坏),但后来我看到了这个:

\n\n
\n

两个受影响的目标磁盘是 USB

\n
\n\n

这是我不幸经历过的另一个腐败来源。问题是 USB 驱动器通过电缆连接,因此电气连接可能会出现问题,从而导致损坏。每当遇到此类问题时,首先要做的就是清洁驱动器连接器、电缆和 USB 端口上的针脚。您可以先尝试从肺部吸入一些潮湿的空气,因为湿度有助于导电。如果这似乎有任何效果,那么您可以用牙刷或其他东西刷别针(我通常使用金刚砂板轻轻擦洗它们)。

\n