最近几周,我遇到了几起数据损坏的情况,这些情况都是在将文件从一个磁盘复制到另一个磁盘时发生的。问题是:原因可能是什么?我该如何查明原因?
一些线索:
- 问题(9 例)发生在两台不同的机器上(一台是带有 ECC RAM 的 AMD 5050e,另一台是上网本),两台机器都运行 Win7x64 SP1,没有崩溃或其他明显问题;
- 将大量数据(总计约 3TB)从一个磁盘复制到另一个磁盘时出现问题;
- 复制是使用标准 GUI(Windows 资源管理器)进行的,没有报告错误;
- 原始文件和副本具有相同的大小和修改日期;
- 使用 MD5 哈希(
md5sum
或/和 Microsoft 的胎儿心功能不全),而副本上的 MD5 是错误的(原件和副本的 MD5 都是可重复的); fc /B
反复报告差异, 那始终位于以 4 kiB 为边界的连续块上(10 次:一支锉刀被击中两次);- 错误块的大小各异,从 4 kiB 到 52 kiB 不等,位于大型文件(通常为几 GB)中的随机位置;
- 损坏的块与原始块没有明显的关系;在大约一半的情况下,损坏的数据全为零;
- 所有涉及的磁盘都是 NTFS,并且健康证明
chkdsk /f
(无坏块,无错误报告); - 受影响的两人目标磁盘是 USB(高清恰好来自同一制造商,但我不能说这很重要)
- 一个是 2.5 英寸 2 TB,装在自供电 USB 3(超高速,用于高速)外壳中,带有 HD 制造商的品牌;
- 一个是 3.5 英寸 1.5 TB,位于基于 Linux 的多媒体外壳(PCH A-200)中,带有 USB 2(高速)从属端口;
- 超过一半的情况是,复制后一小时左右才检测到损坏,无需断开连接或重新启动;在大多数或所有其他情况下,目标磁盘已被正确弹出;
- 我没有理由怀疑各种源磁盘(主要是 SATA,一些 SSD)。
补充:我真正关心的是找到根本原因并找出罪魁祸首,而不是解决问题。
我认为,所有涉及的技术与已报告的错误相比,未检测到的错误率都应该非常低(而且我没有错误报告)。因此
- 如果错误触发因素是磁性介质(这一假设与观察到的 4kiB 对齐非常吻合,我相信这与磁盘的内部物理扇区大小相匹配),那么它就会在某个地方出现灾难性的错误,从而阻止错误被报告,就像(我从经验中知道)在至少有一个读取错误在我最喜欢的(不同)品牌的 SATA 磁盘中;
- 如果错误触发因素是 USB 电缆接触不良且未被 CRC 检测到(如答案所示);并且根据此,假设 USB 2 最大数据包大小为 1kiB来源,而不是 4kiB 作为我所有错误的对齐方式;在处理错误时一定存在一些额外的错误(或者 USB 规格或它们处理硬盘的方式存在巨大漏洞)。
答案1
我遇到了完全相同的问题,并且可以确定这与 USB 3 有关。使用 USB 3 时,我在两个不同的磁盘上都遇到了问题。使用 eSata 连接时(两个磁盘都有 USB 3 + eSata),我没有问题。我使用的是 Windows 7。我在使用 2 种不同的防病毒软件(McAffee 和 Essentials)时遇到了问题。现在我避免在笔记本电脑上使用 USB 3 端口。由于 2 个磁盘来自同一制造商,因此我有相同的 USB 3 电缆,无法使用另一根电缆进行测试。但如果 USB 电缆不好,我会感到惊讶。
答案2
差异始终位于连续的块上,边界正好为 4 kiB……错误块的大小各不相同,从 4 kiB 到 52 kiB,位于大型文件中看似随机的位置
因为驱动器是分块写入的,所以您通常会看到与连接错误(而不是驱动器错误)完全相同的块大小错误。
我本来想问一下该驱动器是否是闪存盘(我很不幸地遇到了静默的、未被发现的损坏),但是后来我看到了这个:
受影响的两个目标磁盘是 USB
这是我不幸遇到的另一个损坏源。问题是 USB 驱动器通过电缆,因此电气连接可能存在问题,从而导致损坏。每当您遇到此类问题时,要做的第一件事就是清洁驱动器、电缆和 USB 端口的连接器上的针脚。您可以先尝试用肺部的湿气呼吸,因为湿度有助于导电。如果这似乎有任何效果,那么您可以使用牙刷或其他东西刷一下针脚(我通常使用砂纸板轻轻擦拭它们)。