![使用 extundelete 取消删除 ext4 上刚刚删除的文件](https://linux22.com/image/52294/%E4%BD%BF%E7%94%A8%20extundelete%20%E5%8F%96%E6%B6%88%E5%88%A0%E9%99%A4%20ext4%20%E4%B8%8A%E5%88%9A%E5%88%9A%E5%88%A0%E9%99%A4%E7%9A%84%E6%96%87%E4%BB%B6.png)
有没有一个简单的选项可以让我尝试取消删除我刚刚删除的extundelete
文件?/var/tmp/test.iso
(我开始重新安装只读驱动器或类似的事情并不那么重要。我也可以再次重新下载该文件)
我正在寻找一个简单的命令,如果我能够快速恢复它,我可以尝试使用它。
我知道,重新安装驱动器是可能的处于只读状态: (看如何简单地恢复刚刚删除的空磁盘上的唯一文件?)
但这也有可能吗在仍然安装的磁盘上?
信息:
如果删除的文件位于 NTFS 分区上,则很容易使用,ntfsundelete
例如,如果您知道大小约为 250MB,请使用
sudo ntfsundelete -S 240m-260m -p 100 /dev/hda2
然后通过以下方式取消删除文件索引节点例如与
sudo ntfsundelete /dev/hda2 --undelete --inodes 8270
答案1
查看使用指南扩展删除似乎您只能通过几种方式取消删除文件。
正在恢复全部
extundelete 旨在将文件从未安装的分区恢复到单独的(已安装的)分区。 extundelete 会将其找到的任何文件恢复到当前目录的名为“RECOVERED_FILES”的子目录中。要运行该程序,请输入“extundelete --help”以查看可用的各种选项。
从分区恢复所有已删除文件的典型用法如下:
$ extundelete /dev/sda4 --restore-all
恢复单个文件
除了命令行中突出显示的此方法之外:
--restore-file path/to/deleted/file
Attemps to restore the file which was deleted at the given filename,
called as "--restore-file dirname/filename".
所以你应该能够完成你想要的事情:
$ extundelete --restore-file /var/tmp/test.iso /dev/sda4
笔记:在这两种情况下,您都需要了解设备/dev/sda4
才能执行此命令。您必须将文件系统重新安装为只读。这是使用的条件之一extundelete
,没有任何办法可以解决这个问题。
答案2
取消删除时的典型使用场景全部文件包括需要恢复/dev/sdX1
大约在过去一小时内删除的所有文件:
mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/
如果对恢复的文件感到满意:
mount -o remount,rw /dev/sdX1
答案3
extundelete 核心已为我转储,但 ext4magic 目前正在喷出文件:
- 立即卸载文件系统
- 如果这意味着关闭您的计算机并将磁盘连接到另一台计算机或从 Live CD 启动,请执行此操作
gparted
查找具有或类似名称的分区名称- 不需要挂载分区
- 打开终端 &
sudo su
- 安装 ext4magic:
apt install ext4magic
- 创建一个目录来放置恢复的文件:
mkdir /mnt/recovered
- 这将恢复 2 小时后删除的所有带时间戳的文件:
sudo ext4magic /dev/sdX# -m -a $(date -d "-2 hours" +%s) -d /mnt/recovered
注意:这可能并不意味着已删除2小时前之后。如果您有时间和空间,最好运行不带-a
选项和grep -r
文件内容的命令。
答案4
extundelete 对我不起作用,但 ext4magic 对我有用。
2022 年编辑:
extundelete 已经近 10 年没有更新了。如果你有 Windows 分区,你可以尝试 Piriform 的雷库瓦。只是不要让 Windows 格式化您的驱动器。