如何恢复 NTFS 分区上最近删除的目录

如何恢复 NTFS 分区上最近删除的目录

在Ubuntu 12.04下的Nautilus中,我不小心选择了分区上的几个目录并立即删除了它们(不幸的是,我通过Shift+Delete删除了它们,这样它们就不会保留在垃圾箱中)。自删除以来,我尚未向该分区写入任何新数据。我想知道我可以尝试什么方法来恢复它们?请注意,该分区是 NTFS,在 Windows 7 和 Ubuntu 12.04 之间共享。

以下是我迄今为止尝试过的不同软件。

  1. 我也尝试过使用 Sleuthkit,但我不知道如何使用它。

    我已经在我的 110GB 96% 使用率的 ntfs 分区上运行了sudo fls -f ntfs -d -r -p /dev/sda3 > ~/deleted_files.txt近一周。它还没有运行完(不知道什么时候),文件~/deleted_files.txt还是空的。由于我不敢向分区写入任何数据,我的所有工作都陷入了停滞。

    现在我想知道在我的情况下使用 sleuthkit 是否是识别最近删除的目录和文件的最快方法?

  2. 我通过 apt-get install 安装了 TestDisk 6.13,然后按照 http://www.cgsecurity.org/wiki/Undelete_files_from_NTFS_with_TestDisk 恢复已删除的目录及其中的文件。但TestDisk显示的并不是已删除的文件/目录名称,如图所示链接中的图片,但是由 inode 编号命名的文件:

    TestDisk 6.13, Data Recovery Utility, November 2011
    Christophe GRENIER <[email protected]>
    http://www.cgsecurity.org
     3 P HPFS - NTFS           9291  38 28 23650 187 25  230686720 [Data]
    Deleted files
    
    >inode_13285                           30-Jan-2011 20:55     29427
     inode_13285:Zone.Identifier           30-Jan-2011 20:55        26
     inode_164258                          11-Aug-2011 13:16      2993
     inode_307016                          12-Feb-2011 09:34      1808
     inode_307017                          12-Feb-2011 09:34     10254
     inode_307018                          12-Feb-2011 09:34     13155
     inode_307019                          12-Feb-2011 09:34      7586
     inode_307020                          12-Feb-2011 09:34      7344
     inode_307021                          12-Feb-2011 09:34      6943
     inode_307022                          12-Feb-2011 09:34      6081
     inode_307023                          12-Feb-2011 09:34     24043
     inode_314965                          12-Feb-2011 09:36    112947
     inode_314983                          12-Feb-2011 09:36     23581
     inode_314984                          12-Feb-2011 09:36      8486
     inode_314985                          12-Feb-2011 09:36       158
     inode_314986                          12-Feb-2011 09:36        45
                                                       Next
    Use : to select the current file, a to select/deselect all files,
        C to copy the selected files, c to copy the current file, q to quit
    

    当我点击a然后C选择并复制所有选定的文件时,名为的文件inode_xxxxxx将被复制到我指定的目录中。

    另外,我不知道 TestDisk 显示的每个文件的日期和时间的含义。是指删除日期和时间还是删除前的最后更新日期和时间? (请注意,TestDisk 显示的最近日期和时间是 2012 年 7 月 30 日 20:53,这不是意外删除发生的今天。)

    如何找出哪些文件是我最近删除的文件,以及如何恢复它们?

    我可以找到并恢复最近删除的目录而不仅仅是文件吗?

  3. 我也很想知道这两个“操作方法”链接是否真的有效?

    http://www.ehow.com/how_5202235_retrieve-deleted-files-linux.htmlgrep -b 'search-text' /dev/partition > file.txt用于搜索已删除的文件。

    http://www.ehow.com/how_7517984_restore-overwriting-file-linux.html,使用“Isdel”命令。

除了 TestDisk 和 Sleuthkit 之外,我还可以尝试哪些软件?

答案1

如果您使用fls -r,那么它将递归地遍历所有目录,这可能不完全是您实现目标所需的。尝试fls以更具交互性的方式使用,就像ls.此外,使用mactime处理输出有助于导航到相关目录/文件。

mactime将所有文件放入时间轴,标记每个文件的修改时间 ( m)、访问时间 ( a)、(属性)更改时间 ( c) 或诞生时间 ( b)。由于文件可以在不同的时间生成和修改,因此您会在不同的行上看到一些相同的文件名。

例如,用于fls -m X: /dev/sda3 | mactime -b -获取按时间排序的顶级目录的列表。已删除的文件带有 标记(deleted)。您还会看到许多维护数据存储,这些存储通常隐藏在 Windows 资源管理器中。

对于 NTFS,有 3 个数字的组合,例如x-y-z在文件系统中指定文件 ID。对于普通目录,y应该是144.

用于fls -m X: /dev/sda3 x-y-z | mactime -b -获取您感兴趣的目录列表。

使用文件 ID 进行类似的恢复:icat /dev/sda3 x-y-z >recovered_file

答案2

Linux 中的数据恢复工具非常奇怪,而且在 NTFS 文件系统上运行的数据恢复工具中很少见。因此,如果您想要一个工具来恢复文件的元数据并呈现它们,如果它不是建议的 ntfsundelete、PhotoRec (Sleuthkit) 或 TestDisk 之一;我建议使用仅限 Windows 的工具来完成该任务。

相关内容