从实时 USB 重新创建 ISO

从实时 USB 重新创建 ISO

我有一个 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

相关内容