我怎样才能防止死亡硬盘上的沉默腐败?

使用干燥驱动器(具有越来越多的坏扇区),在ext4日志分区上, cp操作有时可以完成而没有错误,但写入的数据可能是错误的,或者只是不可读(无效的参数错误在阅读完其中的一部分之后),就在文件创build之后。

是否有一个文件系统可以防止这种事件(ZFS可能)?

或者有没有我可以使用的命令行应用程序,而不是cp ,来检查复制的数据是否正常,然后再删除源代码?

我可以只是源文件和新创build的文件,但这听起来像是一个黑客。

谢谢。

更新 :我想我没有足够的解释为什么我这样问,所以每个人都假设不是。

我不想继续使用这个驱动器。 这个驱动器从我注意到问题的那一刻就断开了。 我想要的是防止这里发生的事情再次发生与其他驱动器。

我有一个脚本,使用CP定期复制一些文件从drive1到drive2,然后从drive2到drive3不久。 我面临的问题是,即使在将驱动器2上的数据复制到驱动器3时,驱动器2上的数据是不可读的,它从驱动器1复制到驱动器2时也没有抱怨。 在这一点上,我从drive1的副本已经被删除了(因为我需要空闲空间,而且我的脚本没有报告任何错误,所以为什么我假定drive2上的数据是OK的)。 所以我丢失了文件。

所以我的问题是:什么是阻止未来再次发生的最好方法? 我应该只使用带有校验和的文件系统,还是使用自己的校验和的复制工具?

将其重新安装为只读并复制NOW的数据。

这是一个糟糕的驱动器唯一的理智的事情。

任何继续使用它的企图都是疯狂的。

没有一个文件系统可以防止出现故障的硬盘驱动器,充其量他们会通过校验和让你知道数据是错误的,ZFS和Btrfs有校验和支持,我相信EXT4正在增加校验和。

唯一可以做的就是获得一个新的驱动器,并在完全失败之前从旧驱动器复制数据,并丢失所有数据。

关于cp你可以使用rsync复制这些文件,在复制之后,再次运行它,如果数据没有改变,那么什么都不会被复制,你会知道复制是好的,如果不是,它只会复制零件的文件是不同的。

我不知道为什么你会继续使用驱动器,只要更换它就可以节省大量的时间。

首先:停止安装驱动器可写 – 这是非常危险的,因为一个困惑的驱动程序可能会对您的数据造成很大的损害。

其次:尝试以下两种工具之一: myrescue和ddrescue 。 你将需要另一个健康的设备作为目标。 这些工具尽可能地复制,跳过坏块,然后再尝试。 这可能需要很长时间,具体取决于设备的损坏情况。 但是,如果你感到高兴,你将获得大部分数据。