dd成像丢失连接的故障磁盘

时间:2015-07-13 16:35:43

标签: linux image hard-drive dd

我正在尝试在失败的硬盘上执行图像。 我遇到的问题导致程序失败,因为磁盘将在映像过程中经常丢失,当系统重新识别它时,它位于不同的地址(/ dev / sdb现在是/ dev / sde)。

我已经尝试过独立地对每个分区进行映像,但是在500GB的磁盘上,我会遇到超过100GB的会话,然后磁盘才会丢失(我认为磁头会随着点击而变化)。

我的问题是,如果使用dd有一种方法可以对磁盘进行映像,将其分解为50GB的部分,以便我可以将整个磁盘放在多个映像上然后进行组合。

或者更好的是,有没有办法强制磁盘重新识别以前的位置?

我发现这个主题的信息很少,所以任何见解都会有用。

感谢。

1 个答案:

答案 0 :(得分:0)

当设备丢失时,您的信息流也会丢失。即使分配了相同的设备名称,也无法恢复。但是,为了方便起见,您可能希望使用udev规则来获取相同的名称。

在dd中,您可以使用四个有用的参数:

  • bs = BYTES “块”的大小
  • skip = N 要在输入中跳过的块数
  • seek = N 要在输出中跳过的块数
  • count = N 要复制的块数(我们这里不需要)

此外,dd具有提供进度报告的功能,虽然有点隐藏。您可以使用“status = progress”或向进程发送信号。后者更复杂,但它允许您定义进度报告的频率。例如,您可以在另一个终端中执行此操作:

for ((;;)); do sleep 1; kill -USR1 `pidof -s dd`; done

将所有这些放在一起,您可以使用bs=4M作为合理的块大小。然后,您可以在辅助终端中运行上述命令,然后启动dd,最初使用

dd bs=4M seek=0 skip=0 if=/dev/… of=…

第一次失败后,使用dd成功复制的最后一个块编号作为参数进行搜索和跳过。你可以在这里保守一点(减少一点数),以确保你的输出没有任何“漏洞”。

重复直到整个磁盘完成。祝你好运!