使用 extundelete 在 ext4 上取消删除刚刚删除的文件

rub*_*o77 60 data-recovery files extundelete deleted-files

关于extundelete如何尝试取消删除/var/tmp/test.iso我刚刚删除的文件,是否有一个简单的选项?

(这并不重要,我会开始以只读方式重新安装驱动器或类似的东西。我也可以再次重新下载该文件)

我正在寻找一个简单的命令,如果我设法快速恢复它,我可以尝试使用它。

我知道,可以以只读方式重新安装驱动器:(请参阅如何简单地恢复刚刚删除的空磁盘上的唯一文件?

但这在仍然挂载的磁盘上也有可能吗?


信息:
如果删除的文件在 NTFS 分区上,则很容易,ntfsundelete例如,如果您知道大小约为 250MB,则使用

sudo ntfsundelete -S 240m-260m -p 100 /dev/hda2
Run Code Online (Sandbox Code Playgroud)

然后通过inode取消删除文件,例如

sudo ntfsundelete /dev/hda2 --undelete --inodes 8270
Run Code Online (Sandbox Code Playgroud)

slm*_*slm 40

查看extundelete上的使用指南,似乎您只能通过几种方式取消删除文件。

全部恢复

extundelete 旨在将文件从未安装的分区恢复到单独的(已安装)分区。extundelete 会将它找到的任何文件还原到名为“RECOVERED_FILES”的当前目录的子目录中。要运行该程序,请键入“extundelete --help”以查看可供您使用的各种选项。

从分区恢复所有已删除文件的典型用法如下所示:

    $ extundelete /dev/sda4 --restore-all
Run Code Online (Sandbox Code Playgroud)

恢复单个文件

除了命令行用法中突出显示的此方法之外:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".
Run Code Online (Sandbox Code Playgroud)

所以你应该能够完成你想做的事情:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4
Run Code Online (Sandbox Code Playgroud)

注意:在这两种情况下,您都需要了解设备/dev/sda4才能执行此命令。您必须将文件系统重新挂载为只读。这是使用的条件之一extundelete,没有任何解决办法。

  • 是的,但这一切都有效,如果我以只读方式重新安装驱动器 (2认同)
  • 这实际上对我来说是一个 ext4 文件系统,而无需将其重新安装为只读。如果您尝试在不重新安装 r/o 的情况下执行此操作,则会收到一条警告,该警告似乎只是在告诉您,如果您这样做,成功的可能性就会降低。如果恢复文件真的非常重要,那么听起来您应该这样做。 (2认同)
  • extundelete 现在不再维护,并且与最新的 ext4 系统存在段错误。ext4magic 是一个替代方案 (2认同)

san*_*mai 20

取消删除所有文件时的典型使用场景包括需要恢复/dev/sdX1大约最后一小时内删除的所有文件:

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/
Run Code Online (Sandbox Code Playgroud)

如果对恢复的文件感到满意:

mount -o remount,rw /dev/sdX1
Run Code Online (Sandbox Code Playgroud)

  • 请注意,目标目录将与 `$PWD` 相关,我认为联机帮助页中没有明确说明。 (2认同)

rac*_*tup 10

extundelete 核心已为我转储,但 ext4magic 目前正在喷出文件:

  1. 立即卸载文件系统
    • 如果这意味着关闭您的计算机并将磁盘连接到另一台计算机或从 Live CD 启动,请执行此操作
  2. gparted查找具有或类似名称的分区名称
  3. 不需要挂载分区
  4. 打开终端 &sudo su
  5. 安装 ext4magic:apt install ext4magic
  6. 创建一个目录来放置恢复的文件:mkdir /mnt/recovered
  7. 这将恢复 2 小时后删除的所有带时间戳的文件:
    • sudo ext4magic /dev/sdX# -m -a $(date -d "-2 hours" +%s) -d /mnt/recovered 注意:这可能并不意味着在 2 小时前被删除。如果您有时间和空间,最好运行不带选项-agrep -r文件内容的命令。


Arn*_*oya 7

extundelete 对我不起作用,但 ext4magic 对我有用。

2022 年编辑:

extundelete 已经近 10 年没有更新了。如果您有 Windows 分区,您可以尝试 Piriform 的Recuva。只是不要让 Windows 格式化您的驱动器。

  • 在有人可以添加说明之前,这很有用:https://gist.github.com/ebautistabar/cca12863e6335d08a019f015f53fac4a (5认同)
  • 您能否提供一个如何取消删除文件的示例 (3认同)