如何仅对硬盘驱动器的某些部分进行映像

如何仅对硬盘驱动器的某些部分进行映像

我的硬盘出现故障,我需要从中提取数据。我的dd功夫现在正在失败。我知道驱动器在扇区 60515007 至 60517093(每个扇区 512b)以及多个其他位置发生故障。我需要跳过该区域。我该怎么做dd?我需要动态压缩它(也许是管道?)。你能推荐一个好的压缩算法吗?

答案1

如果你真的想用 来做到这一点dd,你需要分割你的读数:

dd if=/dev/sda bs=512 count=60515006 | gzip -9 > dump1.gz

/dev/sda将转储to的前 60515006 个扇区dump1.gz,并使用 进行压缩gzip。然后

dd if=/dev/sda bs=512 skip=60517093 count=... | gzip -9 > dump2.gz

将跳过失败的部分并转储下一个您需要的扇区dump2.gz

如果您可以在某处腾出磁盘容量,我强烈建议使用解救反而;它可以自动复制故障磁盘(不会因 I/O 错误而停止)。它的工作速度比(它从大块读取开始,只在需要时读取较小的量来检索失败部分周围的数据)快得多dd,并且避免您必须找出所有跳过等。它不支持压缩输出,因为它需要寻找输出文件。

相关内容