在复制时也生成数据校验和的文件复制程序

Poo*_*zer 7 windows-7 file-transfer checksum file-corruption

我的问题简而言之:是否有一种工具可以将文件从目录 A 复制到 B,同时生成它已复制/读取的文件的校验和,而无需进行额外的读取/传递来生成所述校验和?

我将从一个 HDD 复制几 TB 的文件到另一个,而不是:

  1. 从 HDD1 -> HDD2 复制文件(X 小时)
  2. 在 HDD1 上生成文件校验和(Y 小时)
  3. 验证 HDD2 上文件的校验和(约 Y 小时)

我正在考虑一个更简化的过程:

i. Copy files from HDD1 -> HDD2 and generate checksums of the files copied as well (Z hours)

ii. Verify checksums of files on HDD2 (~Y hours)
Run Code Online (Sandbox Code Playgroud)

我的假设是 Z ~= X因为可以这样的程序将读取完整的文件(因为它将它从一个 HDD 复制到另一个),因此不需要再次读取文件来生成其校验和。

现在我知道我的这个想法可能行不通,例如,如果操作系统使用 DMA 复制文件,并且我不确定 Windows 7 使用什么技术将文件从一个 HDD 复制到另一个 HDD。

对此效果的任何建议将不胜感激 - 特别是加快复制过程确保传输是 1:1 没有损坏或丢失文件

Ern*_*tas 2

您的假设并不完全正确,因为较大的文件肯定不会存储在内存中,并且为了提高复制速度,文件会以特定大小的块复制(在 Linux 中,您可以调整该块的大小以提高复制速度)文件操作)。是的,文件缓存在内存中。至于 DMA - 该技术的重点是在复制文件并将其直接放入 RAM 时避免使用 CPU,因此它不会直接从 HDD 传输到 HDD。DMA 代表直接内存访问。
我建议使用特定的 Linux LiveCD 解决方案(例如 rsync 或非常简单的脚本),但我知道这可能会花费比保存更多的时间,所以如果您坚持使用 Windows 会更好。尝试这些:
http://technet.microsoft.com/en-us/magazine/2006.11.utilityspotlight.aspx
http://www.karenware.com/powertools/ptreplicator.asp
http://sourceforge.net/projects/ rsyncwin32/
http://codesector.com/teracopy

编辑
Microsoft 的 ROBOCOP 有一个更新、更强大的版本:http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

编辑 2
如果在复制过程中您会发现某些内容已损坏,我会怀疑从长远来看使用 HDD2 进行数据存储是否安全(因为只会有更多的扇区被损坏)。