如何一次有效地恢复永久删除的文件夹?

1 ntfs data-recovery windows-10

我的硬盘上有一个文件夹,我想在删除后恢复它。如何从文件系统恢复整个文件夹?

我尝试了一些工具来恢复这些文章中列出的已删除文件:

然而,这些程序看起来很浪费,因为它们似乎在没有目录结构的情况下恢复文件。我不想预览然后单独恢复每个文件,但我只想指定要恢复的文件夹。

如何一次恢复已删除的文件夹?

And*_*tto 8

这些网站上显示的大多数工具都是文件雕刻师。为了制定数据恢复策略,您需要了解用于恢复文件的两种主要不同类别的工具:

  1. 文件雕刻师?他们扫描任何类型的磁盘并尝试通过检查特定签名来恢复已知文件类型。例如,JPEG 文件总是以 bytes 开头FF D8。此方法仅适用于非碎片文件,您无法获得有关文件名称或位置的任何线索。

  2. 在文件系统级别工作的工具? 他们通过查看目录树来读取(可能已损坏)分区,然后使用那里指定的信息来访问文件。出于这个原因,他们可以访问任何文件,只要它在文件系统中列出。

原则上,您可能会认为雕刻师由于其局限性而基本上没有用。然而,这是不正确的。Carvers 可以恢复任何类型的文件系统上的非碎片文件即使您不知道其格式。此外,他们可以在元数据(文件记录)从文件系统中完全删除后恢复非碎片文件。

在您的情况下,场景如下:

  • 你有一个最近删除的文件夹
  • 你想重建它的目录结构
  • 你需要恢复里面的所有元素

因此,您不会使用任何文件雕刻机,您应该避免使用它们。您需要一个“说”NTFS(Windows 使用的文件系统)的工具。

停止使用该分区

您可以尝试直接从 Windows 恢复文件,但这将是一个糟糕的主意。您使用操作系统的次数越多,您就越有可能用新数据覆盖它们。

出于这个原因,现在停止使用 Windows 并使用 Linux live DVD 或 USB 启动您的 PC(基本上任何现代版本都可以,无论是 Ubuntu、Fedora 还是其他任何东西)。如果您没有准备好 Live DVD 或 USB,请使用另一台计算机创建它或购买包含 Linux DVD 的杂志。请勿使用您的 PC 来创建可启动媒体,因为这会在操作过程中在您的硬盘上写入大量内容。

加载系统后,连接外部 USB 驱动器以存储恢复的文件。

从 NTFS 驱动器恢复已删除的文件

免责声明:我是 RecuperaBit 的开发者。此外,以下部分基于我之前在 Unix & Linux Stack ExchangeAsk Ubuntu 上发布的答案。

识别正确的驱动器

运行sudo lsblk以识别您的主 NTFS 分区(假设是C:驱动器)。输出可能有点像这个例子:

$ sudo lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   32G  1 disk 
??sda1   8:1    0  500M  1 part 
??sda2   8:2    0 31.5G  1 part 
sr0     11:0    1  2.8G  0 rom  /cdrom
loop0    7:0    0  2.1G  1 loop /rofs
Run Code Online (Sandbox Code Playgroud)

这告诉我这个驱动器有一个 500 MB 的小分区(Windows 引导加载程序)和一个更大的分区,在整个 32 GB 磁盘上有 31.5 GB。因此我现在知道C:我正在测试的虚拟机的驱动器是/dev/sda2.

使用测试磁盘

您的分区没有损坏,因为您只删除了一些文件。因此,您可以尝试使用TestDisk,这是一款出色的数据恢复软件。

如果您运行的是基于 Debian 的操作系统(包括 Ubuntu),您可以使用以下命令安装它:

sudo apt-get install testdisk
Run Code Online (Sandbox Code Playgroud)

在这一步之后,在驱动器上运行它:

sudo testdisk /dev/sda2
Run Code Online (Sandbox Code Playgroud)

按照屏幕上的说明进行操作。基本上你需要按Enter直到它要求你提供分区表类型(None因为我们正在扫描单个分区)。

当它向您显示一个说明分区是 NTFS 的列表时,您将在底部看到一些选项。选择List以显示其内容。您应该能够浏览文件并导航到原始目录所在的位置。

请注意,由于 Windows 处理回收站的方式,该目录可能位于C:\$Recycle.Bin而不是在其原始位置。基本上,寻找它,直到找到它。

如果找到,请使用箭头键突出显示它,然后按C。这将进入复印模式。您需要导航到外部 USB 驱动器(它将/media/位于media中的某个位置,即在Linux 系统的根目录中),然后C再次按 选择它作为目标目录。

完成,您已经复制了整个文件夹!

如果没有找到,可能是被删除文件夹的父目录的索引记录被清除了,所以你要查找的文件夹不再列出。

在这种情况下,请遵循下一个会话。

使用 RecuperaBit

我的硕士论文是关于重建严重损坏的 NTFS 驱动器。当索引记录被损坏或覆盖时,文件和目录从目录树中消失,即使它们仍然可以恢复。

这就是我开发RecuperaBit 的原因,它使用自下而上的方法进行 NTFS 重建。请按照以下步骤恢复您的文件夹:

  • 创建一个recuperabit_output在外部 USB 驱动器中命名的目录。
  • 从 GitHub 下载 RecuperaBit 并将其解压缩到一个文件夹中。
  • 运行它,传递驱动器和存储恢复文件的路径作为参数:

    sudo python /path/to/RecuperaBit/main.py /dev/sda2 -o /path/to/the/external/USB/drive/recuperabit_output
    
    Run Code Online (Sandbox Code Playgroud)
  • 按 让它扫描驱动器Enter

  • 键入csv 0 list.csv以生成文件列表。
  • 使用 LibreOffice 打开生成的 CSV 文件以查找目录的标识符。例子:

    在此处输入图片说明

    如果我想恢复系统卷信息,那就是 directory 31

  • 返回 RecuperaBit 控制台并输入restore 0 31where0表示第一个分区,即您正在分析的唯一分区。

好了,现在您的文件位于外部 USB 驱动器的recuperabit_output/Partition0.