创建磁盘 ISO 时恢复 DD?

创建磁盘 ISO 时恢复 DD?

我正在尝试创建 250GB HDD 的完整磁盘 ISO 映像,但我不得不取消大约 80% 的操作,花了近 16 个小时才达到这一点,我不想这样做再次等待这一切。我使用了命令:

dd if=/dev/sdc of=ssd.iso

当我不得不用Ctrl+取消它时,C它显示

445056121+0 records in
445056121+0 records out
227868733952 bytes (228 GB, 212 GiB copied, 62735.8 s, 3.6 MB/s

有没有办法恢复创建 ISO 映像?我宁愿不必等待它再次完成整个事情,这将花费近 24 小时。我看到有人使用seek=恢复命令,但我不知道如何使用它。

答案1

是的,您可以继续。请注意,如果自第一次尝试以来有任何数据/dev/sdc发生变化,您将面临类似的风险全景失败(但使用二进制数据,而不是图形)。

skip使用具有相同值和的相同输入和输出文件seek,在您的情况下最多应该是445056121

这假设您已经使用了默认值bs,即512。如此小的值是大概您所经历的缓慢的罪魁祸首。

我会重新计算 的某个更大的值bs,例如8M

mv ssd.iso ssd.img   # because it's not really an ISO
dd if=/dev/sdc of=ssd.img bs=8M skip=27164 seek=27164

其中 27164 表示您已有的 227868733952 字节可以容纳多少个 8 MiB 的完整块。

将来考虑 GNU ddrescue(带有映射文件)。优点:

  • 该工具允许您通过重复原始命令来恢复。
  • 当从设备读取时出现错误时,它的效果更好,因为它旨在处理这些错误,同时dd需要特殊选项(这些conv=sync,noerror只是它是神话他们总是自己工作得很好,你iflag=fullblock也需要)。但即使如此,如果大于源设备上的物理扇区大小,dd也可能无法读取ddrescue将读取的所有数据。bs

答案2

不要使用dd.至少在不知道为什么需要使用它的情况下不会。并且永远不会没有选择。相反,使用cat

cat /dev/sdc >ssd.img

我更改了后缀,因为您没有创建 ISO(您需要mkiso相应的工具,但这似乎不是您真正想要做的)。

答案3

继续“dd”的一种方法应该是在 Mac 上执行以下命令

dd if=/dev/sdc of=ssd.iso skip=$(expr $(stat -f%z ssd.iso) / 512) seek=$(expr $(stat -f%z ssd.iso) / 512)

在运行此命令之前,我建议您首先确保 ssd.iso 的当前大小可以除以 512。

您还可以运行:

echo "dd if=/dev/sdc of=ssd.iso skip=$(expr $(stat -f%z ssd.iso) / 512) seek=$(expr $(stat -f%z ssd.iso) / 512)"

看看这是否有意义。它应该返回

dd if=/dev/sdc of=ssd.iso 跳过=27164 寻求=27164

如果副本被剪切,您可以继续运行第一个命令,直到文件完全复制。

相关内容