如何根据 ISO 验证 DVD

如何根据 ISO 验证 DVD

我有一个 ISO 文件和一张从该 ISO 文件刻录的 DVD。有什么方法可以验证 DVD 是否包含与 ISO 文件相同的内容,并且 DVD 没有任何问题?

我有可用的工具系统救援光盘

答案1

以下命令比较两个二进制文件的内容,并打印第一个不同字节的偏移量。替换/dev/dvd为 DVD 设备的路径(/dev/cdrom/dev/scd0/dev/hdc、...)。

cmp /dev/dvd /path/to/foo.iso

我不确定所有 DVD 是否都包含数据结束位置的指示(我认为有些 CD 没有);您可以将比较限制在图像文件的大小。

ls -l /path/to/foo.iso  # copy the file size, e.g. 123456789 bytes
cmp -n 123456789 /dev/dvd /path/to/foo.iso

您还可以计算镜像文件的校验和,计算磁盘的校验和,并检查它们是否匹配。对于单个比较来说,这种方法比较慢,但如果您需要将多个磁盘与一个镜像进行比较,并且允许镜像和磁盘位于不同的计算机上,这种方法会更快。对于检测意外损坏,这种方法md5sum非常合适。

md5sum /path/to/foo.iso
md5sum /dev/dvd     # if the size can be determined; otherwise:
head -c 123456789 /dev/dvd | md5sum

答案2

由于该问题与操作系统无关,Windows 用户可能会遇到这种情况,因此我建议在 Windows 上实现此目的的一个相对简单的方法是挂载 ISO(OSF安装特别好),然后比较(例如,合并)已安装卷根目录的 CD/DVD 驱动器根目录:

winmerge d:\ e:\

答案3

以下是刻录前后验证 iso 的 256sum 的正确步骤。

确定 iso sha256sum..

$ sha256sum ubuntu-5.10-dvd-i386.iso
e41c0631f6f2c138a417b59bcb880fce

然后确定 iso 的大小(以字节为单位)...

$ wc -c ubuntu-5.10-dvd-i386.iso  
3048179712

然后 dd 你的 cd/dvd 驱动器 |然后计算每个文件的第一位以求和 |然后读取它的 sha256sum

$ dd if=/dev/sr0 | head -c 3048179712 | sha256sum  
e41c0631f6f2c138a417b59bcb880fce

根据系统将 /dev/sr0 替换为 /dev/cdrom 或其他驱动器名称。

为了获得更好的 DD 体验并实时查看 dd 的进度而无需编写脚本,请使用 dcfldd 取证 dd(dcfldd 也可以移植到 2 个不同的输出。)

sudo apt-get install dcfldd

(厚颜无耻地从 unbutu.com 上的一篇文章中窃取)

答案4

在 Windows 上,安装VCd控制工具合并(记得将其添加到系统路径,安装程序中有一个特定的复选框)。

插入 DVD,通常安装在 d:

使用 VCdControlTool.exe 挂载 .iso,例如在 z 上:

从 cmd 运行:

winmergeu.exe /r d:\ z:\

它可能需要一段时间。

警告:WinMerge 在处理大文件时内存不足。

相关内容