在Ubuntu 12.04下的Nautilus中,我不小心选择了分区上的几个目录并立即删除了它们(不幸的是,我通过Shift+Delete删除了它们,这样它们就不会保留在垃圾箱中)。自删除以来,我尚未向该分区写入任何新数据。我想知道我可以尝试什么方法来恢复它们?请注意,该分区是 NTFS,在 Windows 7 和 Ubuntu 12.04 之间共享。
以下是我迄今为止尝试过的不同软件。
我也尝试过使用 Sleuthkit,但我不知道如何使用它。
我已经在我的 110GB 96% 使用率的 ntfs 分区上运行了
sudo fls -f ntfs -d -r -p /dev/sda3 > ~/deleted_files.txt
近一周。它还没有运行完(不知道什么时候),文件~/deleted_files.txt
还是空的。由于我不敢向分区写入任何数据,我的所有工作都陷入了停滞。现在我想知道在我的情况下使用 sleuthkit 是否是识别最近删除的目录和文件的最快方法?
我通过 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,这不是意外删除发生的今天。)
如何找出哪些文件是我最近删除的文件,以及如何恢复它们?
我可以找到并恢复最近删除的目录而不仅仅是文件吗?
我也很想知道这两个“操作方法”链接是否真的有效?
在 http://www.ehow.com/how_5202235_retrieve-deleted-files-linux.html,
grep -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 的工具来完成该任务。