当前位置:首页>Linux>Linux 误删文件如何解决?

Linux 误删文件如何解决?

  • 2026-10-06 17:49:48
Linux 误删文件如何解决?

在Linux系统运维过程中,经常遇到文件误删、系统出错甚至硬盘故障导致数据丢失的情况。别着急,今天手把手教你用Extundelete工具恢复数据,跟着教程操作,零基础也能找回重要文件!

Extundelete是一款专门用来恢复ext2、ext3、ext4文件系统的开源工具,操作简单、效果靠谱。接下来我们就一步步学习怎么用它找回丢失的数据。

安装Extundelete工具

在CentOS 7系统中安装Extundelete依赖于一些其他的库文件,首先我们需要安装 e2fsprogs-devel、e2fsprogs 和 e2fsprogs-libs 这几个依赖包。打开终端,输入以下命令:

yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel gcc-c++ -y

下载Extundelete安装包:我们可以从Extundelete的官方网站(https://sourceforge.net/projects/extundelete/)下载最新版本的安装包。我们下载的是extundelete-0.2.4.tar.bz2这个版本:

wget https://zenlayer.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

解压安装包:下载完成后,我们需要解压这个安装包。使用以下命令将其解压到当前目录:

tar -jxvf extundelete-0.2.4.tar.bz2

解压完成后,会在当前目录下生成一个名为extundelete-0.2.4的文件夹,里面包含了Extundelete的源代码和相关文件。

进入解压目录并配置安装:进入解压后的目录,执行configure脚本来配置安装路径和相关参数:

cd extundelete-0.2.4/          ./configure      make               make install       which extundelete  

这样,我们就可以在系统直接使用Extundelete命令了。通过以上步骤,在 CentOS 7 系统中成功安装Extundelete工具,为后续的文件恢复操作做好准备。

恢复实战:步步为营找回数据

准备工作

挂载磁盘到测试目录mkdir /test1    mount /dev/sdc1 /test1/df -Th
创建文件并同步echo "这是一个重要的测试文件" > /test1/important.txtecho "创建时间: $(date)" >> /test1/important.txtls -li /mnt/test/important.txtcat /test1/important.txt
显示文件MD5哈希值md5sum /test1/important.txt
不小心误删除文件rm -rf /test1/important.txt

当发现文件被误删后,第一时间要做的就是卸载相关分区,因为在文件被删除后,虽然数据块暂时还在磁盘上,但只要分区还在进行读写操作,这些数据块就随时有可能被新的数据覆盖 。一旦被覆盖,文件恢复的希望就极其渺茫了。所以你误删文件位于/dev/sdb1分区,它挂载在/test目录下,使用以下命令卸载该分区:

cd /      umount /test1    

查询可恢复数据信息

extundelete /dev/sdc1 --inode 2 

恢复操作

使用 extundelete 恢复文件:确定好分区后,就可以使用 extundelete 来恢复文件了。extundelete 的命令有多种用法,下面根据不同的恢复需求来详细介绍:

  • 恢复指定文件:如果你明确知道要恢复的文件名称,比如要恢复/test1目录下的important.txt文件,且该文件所在分区为/dev/sdc1,可以使用以下命令:

extundelete /dev/sdc1 --restore-file important.txt

执行这个命令后,extundelete 会在/dev/sdc1分区中查找被删除的important.txt文件,并尝试恢复。恢复成功后,文件会保存在当前目录下的RECOVERED_FILES文件夹中 。这里需要注意,命令中的--restore-file参数后面跟的是文件的相对路径,也就是相对于文件系统根目录的路径,而不是绝对路径。

补充:

  • 恢复指定目录:要是你误删的是整个目录,比如/test1/dir目录,想恢复这个目录及其下的所有文件,命令如下:

extundelete /dev/sdc1 --restore-directory dir
  • 恢复特定时间后删除的文件:有时候,我们可能只需要恢复在某个特定时间之后被删除的文件。假设我们要恢复在2026-01-01 12:00:00之后被删除的文件,命令如下:

extundelete /dev/sda1 --restore-all --after "2026-01-01 12:00:00"
  • 恢复所有文件:这里的--restore-all参数表示恢复所有可恢复的文件,命令如下:

extundelete /dev/sdc1 --restore-all

长按下图(👇👇)二维码,一键关注“武汉木亘信息技术有限公司”

武汉木亘信息技术有限公司

诚信 共赢  创新  发展

最新文章

随机文章