我dd
曾经做过一件非常愚蠢的事情。是的,我确实覆盖了错误的驱动器。
我运行了dd if=file_on_sdb1.iso of=/dev/sdb1 conv=fsync
。(请注意:/dev/sdb1/
不是/dev/sdb
!)它没有完全运行。我猜我在大约 20 秒后中断了它。(它是通过 USB2 连接的。)
当时的设备/dev/sdb
是 1TB(~998GB)HDD USB 磁盘。它使用 GPT 格式化。它包含一个占用所有空间的巨大分区。该分区使用 格式化ext4
。
那里有很多(我猜大约 50GB)数据需要恢复。
我用来覆盖 () 的文件file_on_sdb1.iso
大约有 2.5GB 大。这意味着它可能没有覆盖所有内容。它比原来的小 20 倍,怎么可能呢?
我知道的
- 分区表仍然存在
- 我无法简单地安装硬盘(没有有用的数据)
- 第一个超级块被破坏
我想知道
- 是否(最有可能)仍存在一个旧的超级块?(我不敢相信所有的超级块首先都被覆盖了。他们为什么要这么做。)
有关恢复数据的技巧可获得加分。
答案1
根据您的信息,您可以计算出覆盖区域的大小约为 45 MBytes/秒 *20 秒 = 900 MBytes,但不会超过 2,5GByte。
您这样表述是错误的:
它是用 GPT 格式化的。
它是用GPT分区的。格式化是指构建文件系统。
Testdisk 应该能够找到超级块备份信息。这不会恢复您覆盖的 ~GByte,但您可能能够提取文件系统的部分内容。
gronostaj 推荐的 Photorec 不提供文件名和文件夹结构。当 Testdisk 失败时请使用它。