意外在硬盘上启动 DD 但在运行过度之前停止后,如何恢复数据?

意外在硬盘上启动 DD 但在运行过度之前停止后,如何恢复数据?

今天我将新的 ssd 插入 PC 并启动ddUSB 驱动器命令。为时已晚,因为我意识到驱动器号移动了,我开始在所有数据上刷写 ISO 映像。2 秒后我意识到了这一点并取消了该过程,但已经太迟了。

你认为还有可能恢复数据吗?我把它放到硬盘上试过了。

它在 fdisk 中的样子如下:

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdd1  *        0 11311103 11311104  5.4G  0 Empty
/dev/sdd2         808     5427     4620  2.3M ef EFI (FAT-12/16/32) <- it was the NTFS partition with size of 991 GB

这是 /proc/partitions 的输出:

major minor      #blocks    name
   8    48     976762584    sdd
   8    49       5655552    sdd1
   8    50          2310    sdd2

该硬盘容量为 1TB,采用 NTFS 格式。我将其用作 Linux 和 Windows 的存储。

(dd ver: 9.1)命令dd是从 Fedora 37 触发的,它是这样的:

sudo dd if=./Qubes-R4.1.1-x86_64.iso of=/dev/sdd

答案1

假设大约 1 TB FAT32 分区,卷的开始部分被覆盖,最大的决定因素是 FAT(文件分配表)或至少一个副本是否幸存。没有人可以提前知道这一点,因为有多个变量在起作用;覆盖了多少以及 FAT 的大小。

如果 FAT 幸存下来,则基于文件系统的恢复是可能的。这意味着我们可以(虚拟地)重建文件夹结构、恢复文件名和恢复碎片文件。

如果没有 FAT,我们可以(部分)重建文件夹结构和文件名,但我们必须假设所有文件都是连续的。因此,恢复结果取决于被覆盖的数据量:

在此处输入图片描述

理想情况下,在处理数据丢失情况时,您首先要克隆或镜像有问题的驱动器。因此,您需要一个具有足够容量的目标驱动器。

我建议你使用 DMDE 之类的工具扫描克隆/磁盘映像(或如果你决定不克隆,则扫描患者驱动器)。扫描后选择最有希望的文件系统。

然后单击“全部找到/虚拟文件系统>默认重建>参数以确定文件分配表的状态”。

在此处输入图片描述

如果第一个 FAT 部分损坏,则选择第二个 FAT。

DMDE 演示允许您通过实际保存一些文件来测试恢复。您还可以预览例如 JPEG 文件。检查一些较大的 JPEG 并查看是否正常。如果不正常,该工具可能得出了错误的文件系统参数,其中文件系统的启动和簇大小是最重要的:

由于目录条目指向起始簇,文件分配表引用簇,需要正确“猜测”的两个因素是偏移量,我们从该偏移量开始计算簇 + 每个簇的扇区数。

工具 > 重新打开卷参数允许您修改这些参数,但修改这些参数需要了解 FAT32 文件系统内部结构(还需要一点运气?)。

在此处输入图片描述

假设 NTFS类似的故事也适用,但这一次,MFT 才是最重要的:有多少 MFT 幸存了下来?

MFT 通常位于卷的开始处,然而 MFT 常常是碎片化的,而那些额外的碎片更有机会存活下来。

在此处输入图片描述

MFT 保留的部分越多,文件系统重建的效果就越好、越完整。只有通过尝试才能知道。

相关内容