我正在尝试创建 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
如果副本被剪切,您可以继续运行第一个命令,直到文件完全复制。