linux清除软件数据恢复,[救火专用]Linux下高效数据恢复软件extundelete应用实战

此前 MySQL数据库数据遭到损坏,原因未知。猜想是进行了系统及删除操作或者数据库二进制文件损坏。

首选,我们针对系统全盘进行备份,以避免数据二次伤害;

根据猜想,首先确定数据库二进制文件损坏,准备利用 bin-log 来尝试恢复mysql> show variables like '%log_bin%';

查看下 bin-log 的当前状态,很遗憾虽然开启了但是并没有可恢复的 log 数据

30ad368d7a13e42662b092a7c76dace6.png

那么这种方法恢复数据的操作就先不说了,有机会会再次分享出啦

开始进行系统级的全盘恢复,这里主要使用extundelete,这里简单概述下原理:在Linux下可以通过"ls –id"命令来查看某个文件或者目录的inode值,例如查看根目录的inode值,可以输入:ls -id  /

由此可知,根目录的inode值为2。

在利用extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息(根目录的inode一般为2)来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块,间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。

下面开始实战,首先安装extundeleteyum install extundelete -y

反查删除数据,比如说在/boot 目录下删除了一些文件,那么就先查看下这个目录的 idls -id /boot

使用 df 查看当前分区

9f83de0e5837acddccc7d36626ca4f32.png

我这边的这个是/dev/vda1

使用指令查看此目录下已删除的文件extundelete /dev/vda1 --inode (刚才查到的目录 id)

a40d95aec2e0a43b4c0c647708d3854f.png

可能的结果大概如下,那么后面带有 deleted 就表示这个文件是被删除过了的,使用指令恢复它吧extundelete /dev/vda1 --restore-file symvers-2.6.32-431.el6.x86_64.gz

这里需要注意的是,还原成功的文件不是立即覆盖到原目录下的,而是在当前目录下生成一个 RECOVERED_FIFES一个目录,进入到这个目录就看到文件了

避坑指南:值得注意的是,我们一般只有挂载一个盘,而使用extundelete恢复会有个提示需要卸载磁盘分区的,不必去管它,直接 y 即可。

比如我这个问题,不知道哪里数据损坏了怎么办 ?那就全分区恢复,找到 MySQL 二进制文件关键字全部替换文件回去吧。

恢复整个磁盘:extundelete  /dev/vda1  --restore-all

3. 还有那就是在恢复过程中恢复单个文件或文件夹总是出现错误提示,如下:extundelete: Operation not permitted while restoring directory.

extundelete: Operation not permitted when trying to examine filesystem

那就直接尝试恢复全盘吧。值得说明的是,这里的恢复全盘只是恢复被删除的文件,一般时间会很短的,除非你 rm 了整个 linux 目录哈

意外惊喜:

此方法即使 rm 删除操作也是可以恢复的哦~

另外,恢复时候必须保证对应的文件没有被覆盖重写后再删除过,简单的说,一旦发现数据异常 ,那么就不要再动了。直接备份然后找专业人士解决吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值