计算 CD/DVD 的 md5sum

计算 CD/DVD 的 md5sum

我有一个 ISO 文件,我将其刻录到 CD 上。现在如何检查 CD 是否正确创建?我想要一个计算哈希总和的命令,我可以用它来检查在 ISO 文件上计算的哈希总和。理想情况下,该命令应该:

  • 无论 ISO 文件如何,都可以工作:也就是说,我不想保留光盘中每个文件的哈希和列表,或者记住块数
  • 相对较短:一行命令很好,两行长的命令链也可以,跨越一页的脚本则不行
  • 相当高效:例如,dd将光盘恢复为文件然后md5sum在该文件上运行是不可接受的

如果没有不能满足所有人的答案,我也会欣赏最近的比赛。如果你能告诉我为什么它不那么直接就更好了。

答案1

基本问题是我们想要获取与最初 ISO 上完全相同的信息的 md5sum。当您将 ISO 写入 CD 时,磁盘末尾可能会有空白,这不可避免地会改变 md5sum。因此,最短的方法是:

md5sum /dev/cdrom

不起作用。什么有效(并且常见于在线的文档)只是从设备读取确切的字节数,然后执行md5sum.如果您知道字节数,您可以执行以下操作:

dd if=/dev/cdrom bs=1 count=xxxxxxxx | md5sum

其中“xxxxx”是 iso 的大小(以字节为单位)。

如果您不知道现有的字节数,但磁盘上仍然有 ISO,则可以通过执行以下操作来使用 ls 获取它们(取自这里):

dd if=/dev/cdrom | head -c `stat --format=%s file.iso` | md5sum

还有许多其他单行结构应该可以工作。请注意,在每种情况下,我们都用来dd从磁盘读取字节,但我们不会将这些字节传输到文件,而是立即将它们传递给 md5sum。

bs=通过进行一些计算以使用更大的块大小(命令中的dd),可以提高速度。

答案2

有一个用于此任务的程序。这叫—— checkisomd5。在Ubuntu中可以通过命令安装:

sudo apt-get install isomd5sum

答案3

如果光盘上图像的大小可以被 2048(整数)整除,这似乎很常见,那么您可以得到准确的 MD5sum,如下所示,其中sr0是光学器件的名称 - 可以使用lshw -C disk- 找到,以及“count”是图像大小除以 2048 的除数。

dd if=/dev/sr0 bs=2048 count=356352 |md5sum

相关内容