使用 dd 后恢复 HDD

使用 dd 后恢复 HDD

当我想将 ISO 放在 USB 驱动器上时,我意外地dd在 HDD 上使用过 ( )。我试着四处查看,发现如果数据被覆盖,那么我就完蛋了……/dev/sdc

有办法恢复数据吗?我能做什么?

答案1

Data Destroyer 会覆盖硬盘上的扇区。无法恢复被覆盖的扇区。由于 Linux 在扇区之间分配文件的方式(这就是 ext 分区不需要进行碎片整理的原因),大多数文件的所有内容不太可能都保留下来。从备份中恢复,您确实创建了它们,对吗?如果您没有这样做,您刚刚才知道为什么应该这样做。抱歉。

答案2

只有当部分或大部分数据仍然存在时,数据才可以被保存。

以下是一个简单的暴力实时测试(使用光伏伊佐普)看看有多远(和多少)得到:

hd=/dev/sdc   # change to whatever device or partition needs testing.
pv -EcN raw ${hd} | lzop |  pv -cN compressed | wc -c

在一块还没有被擦除的 160GB 硬盘上一分钟后,测试结果如下:

raw: 5.12GiB 0:01:11 [46.1MiB/s] [==>              ]  3% ETA 0:33:15
compressed: 4.81GiB 0:01:11 [45.9MiB/s] [    <=>         ]

注意压缩这个数字非常接近生的数字。只要作业完成时情况如此,那么大部分数据仍然存在。百分比会根据故障发生前硬盘的容量大小而有所不同,即如果硬盘或分区的容量只有 10%,那么从伊佐普是正常的。这也取决于硬盘里填充的是哪种数据——幸运的是伊佐普是一个弱压缩机,在这里有很大帮助。

让我们用全零来尝试一下:

hd=/dev/zero   # change to whatever device or partition needs testing.
pv -cN raw ${hd} | lzop |  pv -cN compressed | wc -c

...8秒后显示:

raw: 6.81GiB 0:00:08 [ 891MiB/s] [   <=>                  ]
compressed: 31.8MiB 0:00:08 [4.06MiB/s] [     <=>         ]

压缩尺寸现在不到生的。如果整个硬盘都是这样,数据就完蛋了

(注意:读取更大的硬盘需要更多时间,因此可以通过采样来改进此方法。我们可以使用这种方法,而不是读取每个块。读书n块,跳过10n块,并将其喂给生的输入以上内容。)

相关内容