基本上,我想要做的是验证图像是否已成功刻录。这几乎与以下问题相同:这,Mac OS X 除外。
在网上搜索(包括 superuser.com)后,我只能找到针对 Windows 的问题的解决方案,并且我想在 Mac OS X 上解决这个问题。
我已经尝试通过 Wine 安装 ImgBurn,但似乎不起作用。
答案1
进行此类比较的最佳方法是使用cmp
命令。 cmp
逐字节比较数据并告知您两个文件之间的任何差异**。
输入命令为cmp /home/image.iso /media/cdrom0
(请确保根据您的情况使用映像和 CD 的实际路径)。您希望看到的输出要么是无输出(映像和 CD 相同),要么是cmp: EOF on image.iso
,这表示 CD 上的字节数多于映像,但映像上的所有数据都已成功复制到 CD。CD 上的额外数据可能只是用零填充的,当映像小于 CD 的大小时就会发生这种情况。
另一方面,如果您看到输出通知您两者不同(它看起来类似于image.iso cdrom0 differ, byte 128 line 7
),则表示复制映像时出错,并且它们之间存在一些差异。您可能看到的另一个不好的事情是cmp: EOF on cdrom0
,因为这表明部分映像未复制到 CD(这可能是复制过程中断的结果)。
顺便说一句,我猜你看到shasum
每个文件不同的原因是因为 CD 末尾的零填充,这会改变shasum
但不会影响功能。
** 从技术上讲,cmp
仅报告第一的文件之间的差异。如果存在多个差异,则不会显示它们,但对于将图像刻录到 CD 的情况,错误数量无关紧要,任何错误都是不好的。
答案2
我自己不是 Mac 用户,但经过一番调查后,我发现 OS X 似乎原生支持此功能,这要归功于磁盘实用程序应用程序。详情如下:http://www.macinstruct.com/node/390
这篇文章是 2011 年的,就像我说的,我自己不是 Mac 用户,所以我手头没有可以检查的文章,但如果磁盘工具仍然存在,那么这个选项可能仍然存在。
答案3
如果您不怕 OSX 的“阴暗面”,即使用终端,您可以简单地比较原始设备和图像文件的 SHA 校验和。
$ shasum /dev/rdisk2
bad2c8fbb090a4b49b63135895fdb3b64062ceb6 /dev/rdisk2
$ shasum yourdisk.iso
bad2c8fbb090a4b49b63135895fdb3b64062ceb6 yourdisk.img
并比较输出。
答案4
假设 bash 脚本可用
将下面的 bash 脚本作为“cksum.sh”复制到 $PATH
类型中包含的文件夹中chmod 755 cksum.sh
(在您保存脚本的文件夹中)
然后使用它;cd
进入包含原始文件的文件夹,然后执行:
$ cksum.sh -b
创建一个“CONTENT.sha256sum”文件。
$ cksum.sh -c
根据当前目录中的文件检查文件中的校验和。
您还可以提供校验和的文件名作为第二个参数,以覆盖默认值,该默认值始终在当前工作目录中创建/读取(注意:从校验和文件中排除)。
这肯定比其他许多解决方案慢,但我相信它比其他解决方案更通用。还请注意,如果您将校验和文件留在媒体上(无论是 CD、DVD 还是 USB),那么检查媒体内容
sha256sum -c CONTENT.sha256sum
在任何时候都很简单,假设您有 sha256sum 可执行文件。
它可以检测有错误和丢失的文件,但不能检测“添加的文件”(如书面所述);但这可以通过将文件夹内容与列表内容进行匹配来实现。
最终用户还可以通过查找 sha256sum 可执行文件并使用来检测有故障(例如读取错误)和替换的文件sha256sum -c CONTENT.sha256sum
。
--- cksum.sh ---
/bin/bash #!/bin/bash 文件=“$2” 文件=“${file:=CONTENT.sha256sum}” 案例“$1” -b ) (查找 -type f!-iname“*$file”2> / dev / null \ | 当读取 f 时;执行 sha256sum -b "$f" ;完成 ) \ | tee "$file" ;; “-C” ) 如果 [ !-r "$file" ] ;那么 echo "'$file' 不是可读文件,无法检查。" 别的 sha256sum-c“$文件” 菲 ;; *) echo "用法:${0##*/} -b|-c [校验和文件名]" echo "将在 '$file' 中创建 (-b)/检查校验和" echo“对于当前目录中的文件,” echo “通过使用‘find -type f’和‘sha256sum -b/-c’” ;; 埃萨克