如何验证从光学数据盘(如 CD 或 DVD)复制到硬盘的数据文件是否相同?
使用能够进行逐字节比较和/或创建哈希文件的各种文件管理器,可以轻松地将数据文件从一个 HDD 复制到另一个 HDD。
但是,如何完成从 CD/DVD 复制到 HDD 的数据文件同样的任务呢?
根据我的经验,根据 CD/DVD 的划痕程度,位会从一次读取翻转到下一次读取(至少对于音乐 CD 而言,我不知道这是否也适用于数据CD/DVD,这是本问题的主题)。因此,我认为多次读取划痕 CD/DVD 上的文件会导致该文件的多个不相同的副本。或者 CD/DVD 文件系统中是否有与文件一起存储的 CRC32 或类似的错误校正代码,从而防止数据文件的错误读取?
我知道这是音乐 CD 的问题(再次强调,这不是本问题的主题),因为有多个程序,例如 Exact Audio Copy、AccurateRip 等,都试图防止这种情况发生。
我想知道数据光盘是否存在同样的问题,并且想问是否有办法解决这个问题?
我如何确保准确地从 CD/DVD 复制文件?
注意:我使用的是 Windows 10
应该不需要验证数据。而且CD 上的文件系统中没有 CRC32,但 CD 的数据扇区上有 ECC ,无论文件系统如何。所以与硬盘没有太大区别。
从 2352 字节扇区复制音频模式数据本身就是一门艺术。元数据刚好够用以精确识别单个音频扇区,纠错数据刚好够用以处理播放音频流时的小划痕。有些 CD 驱动器擅长提取音频,早期驱动器则不然,这就是我们拥有大量音频提取工具的原因,这些工具试图解决劣质驱动器返回的音频问题。计算机需要将音频读取为离散的数据“块”,而音频是恒定的音频数据“流”,因此当早期驱动器被指示返回音频数据块时,它们无法正常工作,而且并非所有驱动器都支持它。
但对于标准数据模式扇区,2352 个字节被分为 16 字节的扇区头,用于精确标识扇区号,然后有 2048 字节的用户数据和 288 字节的纠错码。
因此,当 CD 驱动器被告知读取数据扇区以向您提供 2048 字节的扇区数据时,它将使用标头来定位它,这样就不会发生读取错误扇区的意外错误,并且它还将使用 ECC 数据来修复任何读取错误,并且如果错误太多,则数据无法修复或扇区 ID 无法修复,您会得到扇区读取错误而不是不正确的数据。
不过,如果您担心,您可以尝试将文件从磁盘复制到硬盘两次,并清除缓存内存以强制重新读取磁盘中的数据,弹出磁盘以引起磁盘更改,从而使之前已从驱动器读取的缓存数据无效。然后比较文件或其哈希值应该是相同的。
另一种方法当然是尝试使用映像工具来拍摄 ISO 映像。也许可以拍摄两次并比较结果是否相同。