我的硬盘出现故障,我需要从中提取数据。我的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
,并且避免您必须找出所有跳过等。它不支持压缩输出,因为它需要寻找输出文件。