我必须将带有196K文件的> 2G文件夹从一个外部硬盘转移到另一个外部硬盘。较旧的驱动器有一些问题,因此我在传输时出错。我跳过有问题的文件。传输成功后,是否有一种有效的方法可以找出未传输(或部分传输)的文件。我正在寻找一种方法在Windows或Linux(Centos / Ubuntu)上这样做
我必须将带有196K文件的> 2G文件夹从一个外部硬盘转移到另一个外部硬盘。较旧的驱动器有一些问题,因此我在传输时出错。我跳过有问题的文件。传输成功后,是否有一种有效的方法可以找出未传输(或部分传输)的文件。我正在寻找一种方法在Windows或Linux(Centos / Ubuntu)上这样做
Answers:
旧驱动器有一些问题
什么样的问题?你的意思是它给出了随机读错误?
如果旧驱动器无法正常工作,则无法进行操作 可靠 知道数据是否被正确传输,因为您甚至无法确定您是否正在从物理介质中读取正确的数据!
例如:
要计算文件的MD5或SHA1总和,您必须从磁盘读取整个文件。如果磁盘静默(没有抛出错误)读取错误的位怎么办?你得到一个不同的哈希。如果你再次阅读它并且第二次正确读取它,那么你将它复制到另一个驱动器怎么办?然后,您将在新驱动器上获得“正确”数据,并且哈希值与您最初计算的数据不匹配。
要“删除”一个文件(如果你要移动它们),你必须这样做 写 到旧驱动器上的文件系统的元数据。如果驱动器出现故障,我绝对不会相信它 写 ;读取很糟糕。只是让驱动器开启可能会导致它在这一点上降级,很难说。
要将哈希值(MD5 / SHA1总和)写入旧磁盘,即可读取 和 写信给它,这是真的不推荐。
此时,如果您重视旧驱动器上的内容,我强烈建议您拔下旧驱动器并让专业数据恢复专家从中恢复尽可能多的数据。
如果你不那样做,你就是在玩火。在任何时候您都可能丢失所有数据。即使在您尝试复制文件时,您也可能会复制越来越多的损坏数据并使事情变得更糟。我不知道你的磁盘故障有多严重,但某些条件可能会使这个时间非常敏感。同样,如果数据完全有价值或无法替代,请停止正在进行的操作并拔下驱动器插头。
将来,我强烈建议您在包含不可替代数据的任何驱动器上使用以下文件系统之一。这些文件系统是“失败明显的”,因为所有数据都经过校验和,因此如果磁盘错误地读取数据(也就是“静默损坏”),文件系统就会知道它,并且可以报告错误。您很幸运,因为您已经从操作系统收到文件没有正确复制的通知;磁盘可以以磁盘控制器无法检测到的静默,阴险的方式失败,这会导致磁盘损坏 无 操作系统通常会在没有校验和的文件系统上通知您。
以下现代文件系统支持校验和:
sha1sum
要么 md5sum
工具 find
脚本...你说Linux(CentOS / Ubuntu),所以你需要的工具就在你面前。您只需将它们组合在一起即可形成有用的shell脚本。
rsync具有仅复制尚未存在的文件的功能,默认情况下仅更新已更改的文件。 它还可以比较源和目标文件的简单哈希值,以检查它们是否使用-c选项正确复制。
它有很多选项可用于配置复制内容的内容和方式。 http://linux.die.net/man/1/rsync