使用 dd 命令恢复被覆盖的 ntfs 分区

使用 dd 命令恢复被覆盖的 ntfs 分区

我意外地使用 dd 命令用 iso 映像覆盖了 NTFS 分区。我尝试使用 testdisk 恢复 NTFS 分区,但在选择磁盘(1.8TB)、选择分区表类型(intel)并进行分析后,我得到了以下当前分区结构: 分区结构

此时我不知道该怎么做才能继续恢复我看不到的 NTFS 分区。我应该选择HFS线吗?请帮我。

答案1

几乎没有任何方法可以正确解决这个问题。文件系统讨厌丢失哪怕是很小的一部分,更不用说用 dd 覆盖数百兆字节了。

在这种情况下,我喜欢做的是确定有多少数据已被准确覆盖 - 从 dd 输出或通过将 iso 映像文件与磁盘数据进行比较(例如cmp datasource /dev/target)。然后将已验证丢失的段清零。

示例:(使用风险自负 - 在完整磁盘副本上运行所有实验或写时复制覆盖

# cmp isofile.img /dev/diska
cmp: EOF on isofile.img after byte 68157440, in line 266228
# dd bs=1 count=68157440 if=/dev/zero of=/dev/diska

# cmp isofile.img /dev/diskb
isofile.img /dev/diskb differ: byte 34603009, line 135095
# head -c $((34603009-1)) /dev/zero > /dev/diskb

将损坏区域清零不会恢复任何数据。但这将有助于阻止恢复软件对块大小和分区偏移量做出错误的假设,并避免浪费时间恢复您不感兴趣的数据。最好根本没有数据,而不是看起来有效的完全虚假数据,因为它来自有效的图像文件。

以后一定要做好备份。

答案2

我身上也发生过一次。我使用“TestDisk”恢复了大部分文件(当我认识到错误时,dd 被停止)有详细的描述这里关于如何恢复丢失的文件

相关内容