Answers:
基本问题是我们想要获取与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
命令)。
dd
与bs
设备高速缓存大小一起使用可以加快数据传输速度,而不是普通的输入重定向。
有用于此任务的程序。称为- checkisomd5
。在Ubuntu中,可以通过以下命令进行安装:
sudo apt-get install isomd5sum
checkisomd5 /dev/sr0
给我:媒体检查完成,结果是:不适用。没有可用的校验和信息,无法验证媒体。
如果光盘上图像的大小可以被2048整除,这似乎很常见,那么您可以得到一个准确的MD5sum,如下所示:sr0
光学名称-使用以下位置可以找到lshw -C disk
- “计数”是图像尺寸除以2048的结果。
dd if=/dev/sr0 bs=2048 count=356352 |md5sum
dd if=/dev/cdrom |
为</dev/cdrom
。dd
阻止设备并没有什么神奇之处,它只是带有有趣语法的流操作命令。