如何检查ISO是否正确写入USB记忆棒?


11

我按照Debian Wiki上的这些 DebianEeePC HowTo InstallUsingStandardInstaller说明进行操作,以将Debian ISO写入我的USB。

dd if=debian-*-netinst.iso of=/dev/sdX

使用sha1sum,我可以检查下载的ISO文件的校验和。如何检查USB记忆棒设备的校验和,以确保USB记忆棒没有任何问题并且ISO复制正确?


USB是通用串行总线。您肯定是说某种连接到该总线的设备(例如闪存驱动器,以太网或声卡)吗?
斯特凡Chazelas

@StephaneChazelas,编辑了问题。
maxschlepzig

Answers:


18

您可以使用它cmp检查所有内容是否都复制良好:

$ cmp -n `stat -c '%s' debian-X-netinst.iso` debian-X-netinst.iso /dev/sdX

此解决方案不会显式计算的校验和/dev/sdX-但您不需要这样做,因为您已经为比较的源(即debian-X-netinst.iso)进行了此操作。

仅执行a dd if=/dev/sdX | sha1sum可能会产生不匹配的校验和,仅是因为您得到了尾随的块(/dev/sdX最有可能大于iso文件)。

通过cmp -n您确保没有/dev/sdX比较您的尾随字节。

如果您对要调用的USB大容量存储设备的质量感到偏执sync,请将其弹出,然后重新插入,然后进行比较-否则所有或某些块可能仅来自内核VM(缓存)-实际上,在硬件上被搞砸了。


1
嘿!当我这样做时,我在第一行立即收到不匹配的信息。可能是什么原因?
SarpSTA

3

朱利安(Julien)的答案可以解决问题,但是有一种更简单,更快捷的方法:

sudo head -c <image size> /dev/sdX | sha1sum

因此,在一行中:head -c $(stat -c '%s' the.iso) /dev/sdc | sha1sum
朱利安·帕拉德

3

只需使用ddmd5sum/sha1sum就足够了,但是如前所述,请注意,您的设备与文件大小不同,因此总和会有所不同。

在这里您仍然可以做到

首先,您需要知道文件的大小:

$ stat -c '%s' debian-live-8.2.0-amd64-lxde-desktop.iso
1003487232

然后,为了使您的系统调用更酷,您最好将其作为两个类似4096的乘方的倍数进行乘积,将两个相乘必须要产生文件的大小,否则,您将检查过少或字节过多,产生错误的校验和。

$ bc
bc 1.06.95
scale = 9
1003487232 / 4096
244992.000000000

我很高兴,4096 × 244992 = 1003487232所以4096对我有好处(可能对您也有帮助),因此我可以使用块大小4096(典型值)和块计数244992

不要忘记在USB闪存盘上写入文件...

$ dd if=debian-live-8.2.0-amd64-lxde-desktop.iso of=/dev/sd? && sync

知道了,使用已知的块大小和块计数,您可以从密钥中读取确切的字节数并进行检查:

$ dd if=/dev/sdb bs=4096 count=244992 | sha1sum
b0dbe4ca8f526d1e43555459c538607d4a987184

(是的md5sum,速度比sha1sum这里要快,但这显然不是您的瓶颈,瓶颈是USB吞吐量,感谢您的注意)。

或者,简而言之:

dd if=/dev/sdb bs=4096 count=$(($(stat -c '%s' the.iso) / 4096)) | sha1sum

谢谢,$ dd if=/dev/sdb1 bs=4096 count=<filesize/4096> | md5sum 我可以检查写入USB棒的Debian映像的md5sum,并将其与Debian md5sums进行比较。
Paul Rougieux

0

基于@Kyle Jones的答案

diff <(md5sum debian-XYZ-netinst.iso | awk '{print $1}') <(dd if=/dev/sdX | md5sum | awk '{print $1}')

您应该使用md5sum它,因为它比sha1sum以下速度更快(这将节省您检查大文件的时间)


6
您的意思md5sum是至少快两倍?一定是因为OP已经sha1sum从下载站点获得了,而不必进行计算。从USB读取将成为限制因素,而不是sha1 / md5计算。
Anthon

1
我在具有处理能力的中档系统上运行具有SHA-256校验和的ZFS。即使在驻留在旋转锈蚀的池上进行清理(读取所有数据并验证所有校验和)期间,限制因素也是磁盘I / O吞吐量,而不是CPU。我怀疑许多USB记忆棒的吞吐率会比这更好,尤其是通过USB 2.0连接时。
CVn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.