使用 extundelete 对Linux误删的数据进行恢复

1.首先到官网下载 extundelete 的 包  extundelete-0.2.4.tar.bz2

地址为   https://sourceforge.net/projects/extundelete/files/latest/download    这个版本已经是最终版了

2.下载完上传到你的服务器并进行解压,解压命令为

tar -jxvf extundelete-0.2.4.tar.bz2

然后进入  extundelete-0.2.4 文件夹,执行 ./configure  进行配置安装

如果你执行的时候出现如下问题,那么你需要安装一下依赖库

 

安装一下这个依赖   yum install e2fsprogs-devel

 

然后再次执行即可成功,成功再执行  make ,   之后再执行 make install  到此为止,extundelete 工具就安装完成了

安装完会在  /usr/local/bin   和当前的 src/ 下生成一个   extundelete  执行文件

一些基本的操作命令可参考 官网或者   https://blog.csdn.net/wll_1017/article/details/50543841

 

然后就来进行一个实际操作吧

 

a. 在 /opt 建立一个 test 文件夹,并创建一个 zxc.txt 文件夹内容如下

 

记得还需要把 test 目录设置为  ext3 或者 ext4 类型,不然无法进行恢复

命令为  mkfs.ext4 /opt/test/      如果是3,把数字改为3即可

然后来模拟删除该文本  rm -rf zxc.txt

当发现误删的情况下,第一件事就是卸载该分区,不如空间被重新分配的话就没法恢复了

 umount /opt/test  把该目录改为只读模式   ---   这个我也不清楚,具体请自行百度,不改也可以,只要能确定你在恢复的

时候该目录不会被别人修改到就可以

然后就是开始恢复了,这里我只介绍已 inode 恢复的方法,其他的可以参考上面的连接,写的很详细

先 df -h 查看一下当前的目录挂在哪里,我的只有一个分区, 就是在 /dev/vda1 下

 

输入  extundelete --inode 2 /dev/vda1 , 直接敲入即可   , 2是因为是最底层的节点就是2

可以看到我的opt 目录的节点为 917507

 

然后再输入 extundelete --inode 917507 /dev/vda1 查看 /opt 下面目录的 innode 节点

然后是再次到 1320257  下面查看下面的节点数据

可以看到右边写着删除的就是你刚刚remove 掉的内容

当然,有人会说这样一层一层进来很麻烦,其实liunx 提供了命令可以查看到某一个文件夹的inode编号,具体为

ls -id /opt/test/

可以看到 indoe 节点跟刚才是一样的,只不过那个是 工具提供的,这是 linux 自带的

刚刚已看到被删除的文件的 inode 编号,就下来就可以用工具来恢复了

extundelete --restore-inode 1320260 /dev/vda1

中间那段提问是因为我没有卸载分区的原因,不影响

当执行完之后会在当前目录生成一个  RECOVERED_FILES 文件夹,下面就是你的文件。cat一下

发现跟原来是一样的,那就正常了,注意,有可能是以前引用的指针,所以尽可能在  rm -rf 前备份一下数据

有一个重点,如果你再次进行恢复可能会报错,会报空间已重新分配的错误,所以尽量只恢复一次吧

 

其实网上已很多关于这个的文章,我只是自己记录一下,平时还是尽量避免不小心操作到  rm-rf 这种命令!

 

https://www.cnblogs.com/wangxiaoqiangs/p/5630288.html

 

作者引申的几个问题不错

 

## 发现 httpd 、pcre 、siege 的都被分配出去了...,现在恢复不出来的就永远没有了..

## 所以,千万记住:万一误删除数据了,一定要第一时间将数据所在磁盘卸载或挂载为只读分区,防止写入文件 inode 被重新分配。
## 如果误删的是根分区的数据,那么立即进去单用户模式,将根分区只读挂载。
## 又引申出一个问题,做系统分区的时候,最好不要只分一个根分区,像这样的情况很难办...
## 第二,数据恢复软件事先装好吧..
## 第三,删除数据时,先将要删除的数据移动到 /tmp(单独分区),然后删除或脚本定期删除
## 第四,做好数据备份。
## 最后,敲慢点 !!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值