将 dd 映像恢复到另一个 USB 驱动器失败

将 dd 映像恢复到另一个 USB 驱动器失败

我正在尝试创建一个包含两个分区的 dd 映像。第一个是 ext3,(19MB),第二个是 fat32。(16MB)

我使用一个 512M 的 USB 驱动器来创建映像。并使用

dd if=/dev/sdc of=image.dd bs=1M count=35  # 35=19+16

我尝试将它放在另一个 2G USB 上

dd if=image.dd of=/dev/sdb bs=1M

然后我尝试使用 gparted 查看 /dev/sdb 上的分区。ext3 分区正常。但 fat32 分区失败。我比较了 sda 和 sdb 之间的 MBR,它们是相同的。

dd if=/dev/sdb of=image2.dd bs=1M

diff image.dd image2.dd 二进制文件 sdb.dd 和 sdc.dd 不同

很奇怪,即使只是读一下写的图像,也是不一样的。

dd if=image.dd of=/dev/sdb bs=1M count=35
dd of=image2.dd if=/dev/sdb bs=1M count=35
diff image.dd image2.dd 
differ

答案1

我认为问题在于没有考虑 MBR 所需的空间:MBR 由位于驱动器第一个扇区的 512 个或更多字节组成。

由于 dd 使用的是分区的精确大小,但您没有添加 MBR 大小,因此最终得到的是部分完整的映像。将计数再加 1 即可保存所有信息。

dd if=/dev/sdc of=image.dd bs=1M count=36

如果您想要进一步缩小尺寸,您可以通过降低块大小并找到正确的块数来调整 bs/count 值。

答案2

添加选项oflag=直接在 dd 上。现在可以正常工作。

相关内容