在linux系统运维工作中,经常会遇到因操作不慎,操作错误等导致文件数据丢失的情况。这里所指的是彻底删除,即已经不能通过“回收站”找回的情况,比如使用“rm -rf”来删除数据。针对linux下的EXT文件系统,可用的恢复工具有debugfs,ext3grep,extundelete等,其中extundelete工具是一个开源的linux数据恢复工具,支持ext3,ext4文件系统。
下面介绍使用extundelete工具如何恢复redhat6.5中的误删除文件
1,编译安装extundelete
在编译安装之前需要安装依赖包,e2fsprogs-libs-1.41.12-18.e16.x86_64.rpm和e2fsprogs-devel-1.41.12-18.e16.x89_64.rpm
这两个包在系统光盘的/Packages目录下就有,使用rpm命令将其安装。e2fsprogs-devel-1.41.12-18.e16.x89_64.rpm安装依赖于libcom_err-devel包。还需要使用yum命令安装gcc,gcc-c++配置编译环境
安装完依赖包之后,即可将提前准备的extundelete软件包解压,配置,编译,安装。
linux系统文件误删除恢复_第1张图片
2,模拟删除并执行恢复操作
(1)使用fdisk命令创建新的分区,将其挂载到/sdb1目录下,并往该目录下新建一些文件
linux系统文件误删除恢复_第2张图片
linux系统文件误删除恢复_第3张图片
linux系统文件误删除恢复_第4张图片
使用“extundelete /dev/sdb1 --inode 2”命令可以查看文件系统/dev/sdb1下存在的文件,以及使用情况。
linux系统文件误删除恢复_第5张图片
可以看到该文件系统下存在的文件,以及inode号
linux系统文件误删除恢复_第6张图片
(2)模拟误操作并恢复
使用“rm -rf a b”命令删除/sdb1下的a文件和b文件,立即卸载该文件系统,使用“extundelete /dev/sdb1 --restore-all”恢复/dev/sdb1文件系统下的所有内容
linux系统文件误删除恢复_第7张图片
执行完恢复的命令后,在当前目录下会出现一个/RECOVERED_FILES/目录,里面保存了已经恢复的文件。
linux系统文件误删除恢复_第8张图片