1、 首先安装依赖包 #yum -y install libcom_err-devel gcc-c++
#rpm -ivh --nodeps e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm


extundelete-0.2.4软件下载地址: https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4 #tar -jxvf extundelete-0.2.4.tar.bz2 #cd extundelete-0.2.4 #./configure //检测系统环境 Configuring extundelete 0.2.4 Writing generated files to disk


#make -j 4 //以4线程同时编译 #make //编译,将源代码文件编译成二进制方式 make -s all-recursive Making all in src extundelete.cc:571: warning: unused parameter ‘flags’


#make install //安装 Making install in src /usr/bin/install -c extundelete '/usr/local/bin'


2、准备一块磁盘,将磁盘进行分区操作,这里不做详细介绍 #mkdir /tmp/sdb1 //创建sdb1目录 #mount /dev/sdb1 /tmp/sdb1/ //将磁盘挂载使用 #cd /tmp/sdb1 #cp /etc/passwd /tmp/sdb1/a.txt //创建a.txt文件,并复制passwd文件内容 #stat /tmp/a.txt //查看文件inode值 File: `a.txt' Size: 856 Blocks: 8 IO Block: 4096 regular file Device: 811h/2065d Inode: 13 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-02-18 18:10:30.687109037 +0800 Modify: 2019-02-18 18:10:30.687109037 +0800 Change: 2019-02-18 18:10:30.687109037 +0800


3、接下来测试删除文件,通过extundelete来恢复 #ls //查看文件 a.txt lost+found tmp #rm -rf /tmp/a.txt //删除文件 #ls lost+found tmp


4、操作前为了防止对磁盘有写入操作,可以取消挂载磁盘或者设置只有读权限 #cd //切换到root目录 #umount /dev/sdb1 //取消挂载 #extundelete /dev/sdb1 --restore-inode 13 //通过inode节点来恢复文件 .. Would you like to continue? (y/n) //选择y ..


**Successfully restored file dow.txt ** //提示回复成功


#ls //恢复的文件存放在RECOVERED_FILES目录里 RECOVERED_FILES** tmp


extundelete 恢复方式有三种模式: 方法1:inode节点恢复 参数[--restore-inode] 方法2:文件名恢复 参数[--restore-file] 方法3: 恢复某个目录 参数[--restore-directory]