我有一个 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
答案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 上的一篇文章中窃取)