linux恢复刚删的文件怎么恢复,Linux恢复误操作删除文件

概述

在Linux系统运维工作中,经常会遇到因操作不慎、操作错误等导致文件数据丢失的情况,尤其对于客户企业中一些新手。当然,这里所指的是彻底删除,即已经不能通过“回收站”找回的情况,比如使用"rm-rf来删除数据针对Linux下的EXT文件系统,可用的恢复工具有debugfs、ext3grep、extundelete等。本贴中仅以extundelete为例,这是一个开源的Linux数据恢复工具,支持ext3、ext4文件系统

删除的数据为什么能恢复?

e792e4f690f66d65f0b264b9bd86b2c7.png

如果查找文件,先是从元信息中查找i节点,再通过i节点找到块中的数据。

如果删除文件,仅仅删除文件名,但是源文件是不会删除,因为源数据块中的数据依然存在,如果再写入数据,有可能覆盖源数据块,造成无法恢复数据,所以此时应当停止一切操作,卸载挂载目录,着手准备恢复工作。

系统环境

Centos6.5操作系统

自建local.repo本地yum源,挂载在/mnt/sr0下

依赖包:rpm -ivh e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm

rpm -ivh libcom_err-devel-1.41.12-18.el6.x86_64.rpm

rpm -ivh e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

源码包:extundelete-0.2.4.tar.gz 百度云下载 密码:lrf2

搭建步骤

⑴安装依赖包e2fsprogs-libs、e2fsprogs-devel,其中e2fsprogs-devel被依赖libcom_err-devel

[[email protected] Packages]# rpm -ivh e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm

[[email protected] Packages]# rpm -ivh libcom_err-devel-1.41.12-18.el6.x86_64.rpm

[[email protected] Packages]# rpm -ivh e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

⑵安装编译器

[[email protected] ~]# yum -y install gcc gcc-c++

⑶解压源码包并编译安装

[[email protected] ~]# tar -xvf extundelete-0.2.4.tar.gz -C /usr/src/#解压

[[email protected] extundelete-0.2.4]# ./configure

[[email protected] extundelete-0.2.4]# make #配置文件转换成二进制执行文件

[[email protected] extundelete-0.2.4]# make install #安装

⑷挂载、写入测试文件

[[email protected] ~]# mount /dev/sdb1 /mnt/sdb1/

[[email protected] ~]# cd /mnt/sdb1/

[[email protected] sdb1]# echo "this is a" > a.txt

[[email protected] sdb1]# echo "this is b" > b.txt

[[email protected] sdb1]# echo "this is c" > c.txt

[[email protected] sdb1]# echo "this is d" > d.txt

[[email protected] sdb1]# extundelete /dev/sdb1 --inode 2#以i节点为2的目录开始查看,最开始的顶层目录,根

0221826bdfb16933c313e1aa3c0e23c7.png

⑸删除文件,模拟测试

[[email protected] sdb1]# rm -rf a b #模拟误删除

[[email protected] ~]# umount /dev/sdb1 #误删除之后立即卸载,此刻不能再对分区操作,非常重要!!!!!

[[email protected] ~]# extundelete /dev/sdb1 --restore-all #针对/sdb1分区,恢复所有被删掉的数据

[[email protected] ~]# cd RECOVERED_FILES/此时当前目录下有一个RECOVERED_FILES是恢复数据存放的目录

9ff68d16495c7b4c1767c56cac9d01a2.png

⑹将数据剪切到源目录中

[[email protected] RECOVERED_FILES]# mount /dev/sdb1 /mnt/sdb1/ #重新挂载

[[email protected] RECOVERED_FILES]# mv a b /mnt/sdb1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值