1.extundelete的恢复原理
extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息,来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块,间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。
2.extundelete的安装
环境:redhat6.5
extundelete官方地址:https://sourceforge.net/projects/extundelete/
安装依赖包
[[email protected] ~]# yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel -y
解压官方网站下载的安装包,最新版本是extundelete-0.2.4
[[email protected] ~]# ls a.png extundelete-0.2.4 extundelete-0.2.4.tar.bz2 getrandom.sh test.rrd [[email protected] ~]# cd extundelete-0.2.4 [[email protected] extundelete-0.2.4]# ./configure[[email protected] extundelete-0.2.4]# make[[email protected] extundelete-0.2.4]# make install[[email protected] extundelete-0.2.4]# which extundelete/usr/local/bin/extundelete
安装过程很简单。
3.extundelete的使用
3.1:我们的操作环境如下:
[[email protected] ~]# mount /dev/vdb1 /test/ [[email protected] ~]# cp /etc/passwd /test/ [[email protected] ~]# cp -r /etc/yum /test/ [[email protected] ~]# mkdir /test/dirtest [[email protected] ~]# echo hello > /test/dirtest/test.file [[email protected] ~]# md5sum /test/passwd 499b16cbdef03e814f3405fccd188dcc /test/passwd [[email protected] ~]# md5sum /test/dirtest/test.file b1946ac92492d2347c6235b4d2611184 /test/dirtest/test.file [[email protected] test]# rm -rf *
3.2:删除数据之后,首先卸载这块磁盘分区,以防止磁盘重新读写。
[[email protected] test]# cd /mnt/ [[email protected] mnt]# umount /test/
3.3:extundelete恢复的一些操作
3.3.1:查询可恢复数据信息。
[[email protected] mnt]# extundelete /dev/vdb1 --inode 2 ...... File name | Inode number | Deleted status . 2 .. 2 lost+found 11 Deleted passwd 12 Deleted yum 8209 Deleted dirtest 8210 Deleted
3.3.2:恢复单个文件。
[[email protected] mnt]# extundelete /dev/vdb1 --restore-file passwd NOTICE: Extended attributes are not restored. Loading filesystem metadata ... 16 groups loaded. Loading journal descriptors ... 63 descriptors loaded. Successfully restored file passwd
恢复成功后会在当前目录下创建RECOVERED_FILES用于存放恢复的文件:通过md5校验,说明我们的数据恢复成功。
恢复单个目录:
[[email protected] mnt]# extundelete /dev/vdb1 --restore-diretory /yum
恢复所有文件
[[email protected] mnt]# extundelete /dev/vdb1 --restore-all
恢复某个时间段的数据:
extundelete提供了--after 和 --before 参数可以指定恢复某个时间段内的数据。
[[email protected] mnt]# extundelete --after 1462284152 /dev/vdb1 --restore-all
更多的操作可以使用 extundelete --help 来查看。
时间: 2024-10-12 23:51:23