使用系统自带的工具debugfs恢复文件
1、模拟数据误删除环境。
实际实验环境可以使用 /dev/xvdb 磁盘来实验,以下为指导书环境,与实际操作环境略有不同
[root@localhost ~]# mkdir /data/ixdba/
[root@localhost ~]#cd /data
[root@localhost data]# mkfs.ext4 /dev/xvdb //格式为ext4的文件系统,在出现的提示符处输入y
[root@localhost data]# mount /dev/xvdb /ixdba/ //挂载
[root@localhost data]# cp /etc/host* /ixdba/ //往里边放文件
[root@localhost data]# cp /etc/passwd /ixdba/
[root@localhost data]# cd /ixdba/
[root@localhost ixdba]# ls
host.conf hosts hosts.allow hosts.deny lost+found passwd
[root@localhost data]# rm -f passwd //制造删除的动作
2、查看被删除的文件
删除数据之后,首先卸载这块磁盘分区或者挂载为只读,以防止磁盘重新读写。
cd ~
umount /dev/xvdb 或者 mount -r -n -o remount /ixdba/
使用debugfs 打开设备
debugfs -w /dev/xvdb
用ls 加-d参数显示刚刚删除文件所在的目录
显示有<>尖括号的就是我们要找的文件Inode 号
执行logdump -i <inodenumber>
执行完命令后,显示了一屏信息,我们需要的是下面这一行,并且要记住,后面的值
这里未能显示Blocks号码,说明没成功,
如果能看到 blocks号码就可以用如下命令进行恢复
dd if=/dev/xvdb of=/tmp/passwd bs=4096 count=1 skip=blocksnumber
意思就是提取文件到/tmp下面。
既然这种办法我们没成功的话,就试试接下来的办法。
键入 quit 可以退出debugfs环境
实验步骤二
使用extundelete恢复文件
1、查询恢复数据信息
同样我们使用上一步骤的模拟环境
查询恢复数据信息,注意这里的--inode 2 这里会扫描分区 :
# extundelete /dev/xvdb --inode 2
上面标记为 Deleted 是已经删除的文件或目录
开始恢复文件
默认恢复到当前目录下的 RECOVERED_FILES 目录中去。
恢复一个文件
# extundelete /dev/xvdb --restore-file passwd
思考一下为什么 恢复passwd没有成功
如果恢复一个目录:
# extundelete /dev/xvdb --restore-directory /directoryname
恢复所有文件:
# extundelete /dev/xvdb --restore-all
既然恢复单独的文件没有成功,我们可以试试恢复所有文件
我们似乎恢复了。接下来用md5sum检验一下
获取恢复文件校验码,对比检测是否恢复成功
恢复成功了。
也许你注意到了,上面的passwd是有两个文件的,因为做了覆盖操作,所以恢复单独的文件并没有成功,这时候我们可以试试恢复全部文件,也许还有一线希望。
实验步骤三
使用photorec恢复文件
1、创建删除环境
# mkfs.ext4 /dev/xvdb //格式为ext4的文件系统,在出现的提示符处输入y
# mount /dev/xvdb /ixdba/ //挂载
# cd /ixdba/
# echo "111111111" >> test.file
# ls
lost+found test.file
# rm -rf *
2、恢复文件
卸载文件系统
# umount /ixdba/
输入photoprec
用方向键选择需要恢复文件的分区,然后 Enter 回车
选择文件系统类型,如果不知道可以选择Unknown
然后回车
底部的选项菜单可以进行一些设置,比如File opt中可以设置指定搜索的文件类型,这里就不详细举例了。可以自己尝试
选 [ext2/ext3] 继续回车:
分析类型我们选择 Whole
选择保存文件的目标目录,然后按 C 确定
这里选择 data好了
按 C 之后就开始了恢复过程
上面的提示告诉我们 4个文件恢复到了 /root/recup_dir开头的目录中。(并没有恢复到我们选择的目录)
选择 Quit, 回车退出
去看一下有没有我们想要的文件
由于photorec 是底层恢复,所以不会是原来的文件名,我们看一下有没有我们想要的文件。所以只能一个个看了~~~~~~
本教程只做简单的演示,具体可以参照:http://lintut.com/photorec-recovery-deleted-files-onrhel-centos-fedora-ubuntu-mint-linux/