md5sum反复给同一台机器上的同一个文件不同的校验和

我有一个非常小,很旧的硬盘,大约32G。
在这个磁盘上,我拷贝了一个大约5G的大文件。

当我运行md5sum在这个文件上生成校验和时,我反复得到不同的结果(在同一台机器和同一个文件上)。 这显然不应该发生。

如果我用一个更小的文件重复实验,那么校验和每次都是一样的。 我只能假设,因为大文件跨越大部分的磁盘,而且是一个旧的驱动器,我遇到了很多在硬盘上的读取错误 – 它需要更换? 有没有其他的理由呢? 我可以做些什么来解决问题,而不是购买新的磁盘?

更新:sha1sum也会产生不一致的结果。

可能值得运行fsck (或者您使用的任何文件系统的等价物)来修复磁盘错误。 但是,如果它是最后一站,这可能是这个驱动器最后一件事情。

唯一可能的原因是坏的磁盘或坏的RAM,并且由于磁盘是旧的,而且没有遇到其他问题,所以不太可能成为RAM。

它可能是一个不起眼的连接器/控制器:我曾经有一个IDE-> USB适配器变坏,导致损坏的转移,即使认为驱动器是完全正常的。

为了安全起见,我build议你运行memtest86 +过夜,以确保它没有发现内存错误。

根本原因是,你的RAM损坏了。 这可能是一个坏的棒,但有时像显卡这样的设备可能会损坏主内存。

确认内存是安全的之前不要fsck 。 否则fsck可能会破坏一切。

在修理这个系统时,拔出驱动器,放入一个已知的良好系统和FSCK。

sha1sum是否有相同的行为?

我希望在接收改变散列过程的幻像数据之前读取磁盘错误。 你在哪个平台上运行?

我也有过这个问题。 原来是主板上的硬盘控制器。

然而,在这种情况下,它绝对听起来像一个硬盘驱动器。 硬盘驱动器倾向于通过在背景中透明地标记坏扇区来维持生命。 当操作系统级别的行业终于开始恶化时,驱动器将很快到期。

由于数据每次都有所不同,md5sum可能在每次运行后读取的次数越来越less。 但失败的读取应该导致md5sum退出并报告input/输出错误。

备份这个驱动器上的任何数据并转移到新的驱动器是非常重要的。 此驱动器可能会随时失败。 不要将这个驱动器用于任何重要的工作。

是否有任何进程或cron作业设置为自动添加或删除此tar文件中的文件?

我也会运行磁盘检查。 如你所说,确保磁盘本身没有任何问题。