首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >rm -rf 误删文件?莫慌!extundelete 绝对是你的最后一颗救命稻草

rm -rf 误删文件?莫慌!extundelete 绝对是你的最后一颗救命稻草

作者头像
民工哥
发布2026-03-24 18:53:33
发布2026-03-24 18:53:33
680
举报

特色专栏

MySQL/PostgreSQL/MongoDB

ElasticSearch/Hadoop/Redis

Kubernetes/Docker/DevOps

Kafka/RabbitMQ/Zookeeper

监控平台/应用与服务/集群管理

Nginx/Git/Tools/OpenStack

大家好,我是民工哥!

身为程序员的我们,谁还没有个手一抖误删文件的时候呢!

删库跑路这事可不太好搞哦,再说了,跑能跑掉的嘛,是吧。

不过,有了今天说的这款神器后,再也不必删库跑路了。

这款神兵利器就是:extundelete!

这款神器绝对是运维工程师们的最后一颗救命稻草。

extundelete 它是一款开源的 Linux 系统数据恢复工具,专为 Ext3 和 Ext4 文件系统设计。它通过分析文件系统的 inode(索引节点)和日志信息,恢复被意外删除(如使用 rm 命令)但尚未被新数据覆盖的文件或目录。该工具基于文件系统底层机制工作,避免了对磁盘的破坏性扫描,是 Linux 环境下数据恢复的重要工具之一。

官方网站:https://extundelete.sourceforge.net/

不过,切记一定是没有被新数据覆盖,没有被新数据覆盖,没有被新数据覆盖,重要的事情重复三遍。

否则,就算是大罗神仙来了,也救不了你哦。

首先,我们还是来了解一下关于文件系统数据删除的原理

当你删除某个文件时,其实,这时系统并不是立马将文件从磁盘上擦除,而是执行了一个操作,这个操作就是将你所删除的文件对应的inode节点中的链接数标记为0,也就是说此文件不可被引用了。

然后,将此文件占用的数据块空间标记成空闲状态,这样可以允许后面的新数据写入(覆盖),此时,文件的实际数据其实还是被保留在磁盘上的,直到有新数据写入后将其覆盖,那么,这时这个文件才是被真正删除了。

正因如此,extundelete 的恢复逻辑就是通过扫描磁盘的 inode 区域和数据块区域,识别出“链接数为 0 但数据块尚未被新数据覆盖”的文件,然后重新构建 inode 与数据块的关联,将该文件恢复到指定位置。

extundelete 仅支持 Ext3 和 Ext4 文件系统,不支持 Ext2、XFS、Btrfs 等其他文件系统。

支持恢复单个文件、整个目录或所有被删除的文件,也支持按时间范围恢复(如恢复在特定时间段内删除的文件)。

恢复方式

  • 通过 inode 恢复:适用于已知 inode 编号的文件。
  • 通过文件路径恢复:适用于已知原始路径的文件。
  • 批量恢复:支持恢复所有被删除的文件。

适用场景

  • 误删单个文件(如配置文件、日志文件)。
  • 误删多级目录(如业务数据目录、用户文档目录)。
  • 误执行 rm -rf * 但未在该分区写入新数据。
  • 需要恢复特定时间范围内的文件。

在使用 extundelete 恢复数据前,建议先卸载目标分区或以只读的方式去挂载目标分区,这样做的目的是为了防止新数据写入覆盖掉旧数据(需恢复的数据),恢复的文件默认保存在非目标分区,这样可以避免二次损坏。

extundelete 的安装其实也非常简单:

代码语言:javascript
复制
#依赖安装
Ubuntu/Debian:sudo apt install -y gcc make e2fslibs-dev e2fsprogs
CentOS/RHEL:sudo yum install -y gcc make e2fsprogs-devel e2fsprogs

#下载源码编译安装
wget https://sourceforge.net/projects/extundelete/files/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
tar -xjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make && make install
extundelete 恢复基本操作

卸载目标分区

代码语言:javascript
复制
umount /dev/sdb1  #实际环境中将sdb1替换为实际分区设备名

查看可恢复的文件

代码语言:javascript
复制
extundelete /dev/sdb1 --inode 2  #查看根目录下的 inode 信息
extundelete /dev/sdb1 --list-deleted  #列出所有被删除的文件

恢复文件或目录

代码语言:javascript
复制
#恢复单个文件
extundelete /dev/sdb1 --restore-file /path/to/file  #替换为实际路径

#恢复整个目录
extundelete /dev/sdb1 --restore-directory /path/to/directory  #替换为实际路径

#恢复所有被删除的文件
extundelete /dev/sdb1 --restore-all

恢复的文件默认保存在当前目录下的 RECOVERED_FILES 中。

代码语言:javascript
复制
ls –l RECOVERED_FILES/  #查看恢复的数据

任何工具都有局限性,注意事项及局限性如下:

  • 如果误删文件后,有新据写入,大概率会导致恢复失败。
  • 若误删的是根分区(如 /)的文件,需将系统进入单用户模式,并将根分区以只读方式挂载,以防止数据被覆盖。
  • 恢复的文件可能会以 inode 编号作为扩展名,无法保留原文件名。
  • 硬链接文件无法恢复
  • extundelete 只可作为数据恢复的辅助工具,不能保证 100% 恢复所有数据,因此,数据备份是第一要务。
  • XFS 文件系统的文件无法恢复,需使用其它工具

对比一下其它恢复工具:

工具名称

支持的文件系统

恢复方式

支持的文件类型

恢复范围

安全机制

extundelete

Ext3/Ext4

inode扫描、文件路径恢复、批量恢复、时间范围恢复

所有类型

单个文件/目录/所有文件

需卸载分区或以只读方式挂载,避免数据覆盖

TestDisk

FAT12/16/32、exFAT、NTFS、Ext2/3/4、HFS+、ReiserFS、XFS等

分区表修复、引导扇区重建、文件恢复

所有类型

分区级恢复(如丢失分区、引导故障)

命令行/菜单驱动,支持跨平台(Linux/Windows/macOS)

PhotoRec

兼容多种文件系统(FAT、NTFS、Ext等)

文件签名识别(通过文件头/尾)

图片、视频、文档、音频等

文件类型恢复(如JPEG、PDF、MP4)

命令行操作,可指定输出目录

foremost

多种文件系统(FAT、NTFS、Ext等)

文件头尾模式匹配

图片、文档、Office文件等

文件类型恢复(可配置文件格式)

命令行操作,支持自定义配置文件

R-Linux

Ext3/Ext4

类似extundelete的inode扫描

所有类型

文件级恢复

命令行操作,支持在线恢复

Knoppix

多种文件系统

系统急救、数据复制

所有类型

系统级恢复(可引导CD/USB)

实时系统环境,避免原生系统干扰

Ubuntu Rescue Remix

多种文件系统

数据恢复、系统修复

所有类型

系统级恢复(实时Linux环境)

集成开源恢复工具,支持外部驱动器

Stellar

Ext4/Ext3、FAT32/16/12、NTFS等

文件/分区恢复、格式化恢复

所有类型

文件/分区级恢复

图形界面,支持预览与选择性恢复

说明

  • extundelete专注于Ext3/Ext4文件系统的文件级恢复,支持inode扫描和时间范围过滤,适合误删文件场景。
  • TestDisk更擅长分区级问题(如分区丢失、引导故障),支持跨文件系统操作。
  • PhotoRec/foremost通过文件签名识别特定类型文件,适合图片、文档等格式化恢复。
  • 系统级工具(如Knoppix)提供完整系统恢复环境,适合严重系统崩溃场景。
  • Stellar等商业工具提供图形界面和预览功能,适合非技术用户。

结语

extundelete 作为一款专注于 Ext3/Ext4 文件系统的开源数据恢复工具,凭借其基于 inode 的精准扫描机制和灵活的恢复方式(支持文件/目录/批量恢复及时间范围过滤),在误删文件、目录或分区未被覆盖的场景下展现出高效可靠的恢复能力。

其轻量级设计、命令行操作模式及对底层文件系统的深度解析,使其成为 Linux 环境下数据急救的优选工具之一

对于复杂场景(如物理损坏或跨文件系统恢复),可结合 TestDisk、PhotoRec 等工具形成完整解决方案。

总体而言,extundelete 以其专业性、实用性和开源特性,为 Linux 用户的数据安全提供了坚实保障。

都看到这里了,觉得不错的话,随手点个赞👍 、推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • extundelete 恢复基本操作
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档