我有一个 ubuntu live usb。我想检查 live usb 的完整性。这可以通过将我创建的 iso 文件的校验和与上面提到的文件进行比较来完成这个网址。因此,我使用 创建了 usb 的 ISO 映像sudo cat /dev/sdb > /home/user/test.iso
。我获得的 ISO 映像为 4gb,因为 usb 为 4 gb,而原始 iso 小于 1 gb。我如何从实时 usb 重新创建原始 iso?
答案1
您可以“计算”所需的字节数(使用 df),然后使用日仅复制该数量的块:
例如:我将 1.8MB 的 ISO 写入 1GB 的 USB 密钥:
# dd if=/usr/lib/memtest86+/memtest86+.iso of=/dev/sdb
如果我做一个普通的 DD,它会复制整个 GB
# dd if=/dev/sdb of=/tmp/full_disk.iso
1957888+0 records in
1957888+0 records out
1002438656 bytes (1.0 GB) copied, 2.56494 s, 391 MB/s
通过使用自由度,我可以算出有多少个 k 块(或 1024)
# df -P /dev/sdb
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/sdb 1796 1796 0 100% /mnt
这样,就可以只复制块的数量,在我的情况下是 1796 个:
# dd count=1796 bs=1024 if=/dev/sdb of=/tmp/usb.iso
1796+0 records in
1796+0 records out
1839104 bytes (1.8 MB) copied, 0.00999846 s, 184 MB/s
使用md5sum我们可以看到usb.iso文件和原始ISO相同:
# md5sum /usr/lib/memtest86+/memtest86+.iso /tmp/full_disk.iso /tmp/usb.iso
bbd27e6fb8747109cde9bb1e3e7117ab /usr/lib/memtest86+/memtest86+.iso
a42d80c87c091d04ae9d6426d70c4e82 /tmp/full_disk.iso
bbd27e6fb8747109cde9bb1e3e7117ab /tmp/usb.iso