裤衩哥的小屋

# 使用extundelete数据恢复

安全运维 Tags: 无标签 阅读: 26
有很多时候运维人员会选择直接rm -rf 某文件或者目录。这是一个很不好的习惯,推荐时mv到/tmp目录下,并写一个脚本定期清理/tmp下的内容,在使用过程中如果发生了误删除的情况,可以使用extundelete恢复数据。
在Linux下,通过命令rm -rf可以将数据直接从硬盘删除,并且没有任何提示,Linux也并没有回收站功能,也就是说如果数据被删除后通过常规手段是无法恢复的。
extundelete的恢复原理是根据文件系统的inode信息,来获取单个西安文件系统下所有文件的信息,包括存在的和已经被删除侧文件,这些信息包括文件名和inde。然后利用inode信息结合日志去查询该inode所在的block,最后利用dd命令将这些信息备份出来,从而恢复数据文件。
这里我演示使用的是ubuntu大致过程:

删除数据
卸载磁盘分区
查询可恢复的数据
恢复文件
在数据被误删除后第一时间要做的就是卸载删除数据所在的磁盘或者磁盘分区,如果是系统根分区的数据遭到误删除,就需要将根分区以只读形式挂载。原因是,将文件删除后,只是将文件的inode节点中的扇区指针清零了,市级文件还储存在磁盘上,如果磁盘以读写模式挂载,这些数据块就可能被操作系统分配出去了,以只读模式挂载硬盘,可以防止数据被覆盖的风险,提高恢复成功的几率。

[bash]
root@2a6f1781eb94:~# apt-get install extundelete
root@2a6f1781eb94:~# vi 123.txt
[/bash]

QQ20190331-154855@2x.png
QQ20190331-154904@2x.png

[bash]
root@knickers:/root# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4       19G  4.0G   14G  23% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev           devtmpfs  487M  4.0K  487M   1% /dev
tmpfs          tmpfs     100M  960K   99M   1% /run
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs     497M  152K  497M   1% /run/shm
none           tmpfs     100M   48K  100M   1% /run/user
[/bash]

QQ20190331-154912@2x.png
QQ20190331-154920@2x.png
删除后:

开始恢复:

[bash]
root@knickers:~# extundelete /dev/sda1 --restore-file /root/123.txt
[/bash]

QQ20190331-154934@2x.png
这时候会在当前目录下新建一个文件夹/RECOVERED_FILES
其中文件恢复会按照原路径恢复。

QQ20190331-154940@2x.png
QQ20190331-154947@2x.png
这里可以看到。已经恢复成功了 md5值也没有改变,证明恢复的信息是完整的。
网上有很多关于这个软件的使用说明,这里只是重现一下,留个记录。

发表评论