Linux系统下误删除虚拟机恢复数据的方法-数据恢复成功案例

标签: 虚拟机数据恢复 linux 数据恢复 linux系统
7人阅读 评论(0) 收藏 举报
分类:

一、虚拟机故障环境描述

客户的物理机器操作系统为Linux系统,文件系统为EXT4文件系统。其上的KVM虚拟机被删除,每台虚拟机包含一个qcow2格式的磁盘文件,和一个大小约为1.2T的raw格式的磁盘文件,主要需恢复raw格式的磁盘文件。客户已自行备份。

虚拟机1:主数据库服务器
虚拟磁盘:10G系统盘(qcow2)+1.2T数据盘(raw,主要恢复)
文件系统:EXT4
主要数据:MySQL数据库

虚拟机2:备份数据库服务器
虚拟磁盘:10G系统盘(qcow2)+1.2T数据盘(raw,主要恢复)
文件系统:EXT4
主要数据:MySQL数据库

虚拟机3:代码服务器
虚拟机盘:10G系统盘(qcow2)+1.2T数据盘(raw,主要恢复)
文件系统:EXT4

主要数据:程序代码


二、虚拟机数据恢复过程

1、分析EXT4文件系统,定位被删除虚拟机磁盘文件的节点位置;
2、获取磁盘文件残留的索引信息;
3、校验残留索引信息的正确性,修复破坏不严重的索引;

图为获取的索引等信息:Linux系统下误删除虚拟机恢复数据的方法-数据恢复成功案例

4、修复完成后,解析残留的各级索引,从虚拟机所在的卷中提取虚拟磁盘文件;
5、根据虚拟磁盘文件的提取情况,获取卷中未被索引到的自由空间;
6、校验提取出的磁盘文件的正确性与完整性;
7、从自由空间中获取有效信息,尝试对虚拟磁盘文件进行修补(如节点,目录项,数据库页等信息)。
图为提取出的自由空间:
Linux系统下误删除虚拟机恢复数据的方法-数据恢复成功案例

三、数据恢复结果

1、由于索引丢失,提取出的虚拟磁盘文件并不完整,针对数据库服务器,数据库文件有丢失的情况,可以从自由空间中获取数据库页去对数据库文件进行修补,但由于部分页所在区域被覆盖占用,只能尽量多的去补页;
2、对于存放程序代码的服务器中的节点和目录项丢失的情况,若节点或目录项有残留,可以尝试去补齐节点和目录项。但发现部分文件的节点和目录项同时丢失,根据节点和目录项之间相关联的特性,这种情况下无法补齐。另根据程序代码文件的特性,不具备一定的规律性,若其数据区丢失,无法补齐。
图为恢复出的部分目录结构:
Linux系统下误删除虚拟机恢复数据的方法-数据恢复成功案例
Linux系统下误删除虚拟机恢复数据的方法-数据恢复成功案例

四、数据验证

在尽可能的尝试对虚拟磁盘文件及其中的数据库文件修补之后,由客户对数据进行验证。数据有部分丢失,无法恢复,但整体还可以接受,数据恢复有效。

查看评论

winhex手工数据恢复教程

本套课程从最基础的内容开始讲解,一步一步教你用winhex手工恢复出数据,课程包含分区表、FAT32文件系统、和NTFS文件系统的数据结构和数据恢复方法
  • 2016年07月06日 15:28

IDC机房ESXi5.0误删除虚拟机的数据恢复过程

【数据恢复故障描述】         故障的虚拟化系统是 ESXi5.0,连接了多个LUN,其中一个1T的LUN上跑有7 台虚拟机,均为Windows Server 2003,管理员因为其它原因误删...
  • beiya123
  • beiya123
  • 2017-05-08 14:12:36
  • 793

利用闪回功能恢复删除(drop,delete)的数据和表及数据,update之后数据恢复

一、drop表 从 flashback table 里查询被删除的数据表 1、select * from recyclebin order by droptime desc 2、执行表的恢复 ...
  • u010716730
  • u010716730
  • 2017-10-01 14:52:59
  • 119

MySQL:生产误删除数据恢复方法

因为生产上误执行语句,需要找回原数据 delete from `xxx` where a = 1; 步骤 1、解析主的binlog找到执行删除语句时对应的pos点,如下: # at...
  • u013820054
  • u013820054
  • 2016-08-17 11:00:16
  • 1243

mysql使用binlog恢复使用delete误删的数据

在我们平时使用MySQL数据库的时候,可能会出现delete from table_name 忘记写条件语句而导致删除了整个表的数据。 这个时候就很棘手了。如果公司的数据库都有开启数据备份那自然是没...
  • u013803262
  • u013803262
  • 2017-06-11 17:20:21
  • 4235

数据恢复:在 Linux 上恢复删除了的文件

导读 你曾经是否遇到这样的事?当你发现的时候,你已经通过删除键,或者在命令行中使用 "rm"命令,错误的删除了一个不该删除的文件。 在第一种情况下,你可以到垃圾箱,搜索那个文件,...
  • Jack__CJ
  • Jack__CJ
  • 2016-11-27 11:10:25
  • 3533

CentOS6.5 通过extundelete恢复误删数据

前几天一不小心删除了公司MySQL数据库的表,同时MySQL又没有开启log_bin日志,于是想到在OS层恢复数据(特殊说明:MySQL的每张表都会以.myi .myd .frm三个后缀的三个文件保存...
  • beyondblack
  • beyondblack
  • 2014-11-25 23:09:26
  • 1622

SQLSERVER2012误删数据恢复过程

由于长时间从事企业应用系统开发,前往用户现场升级、调试系统是比较常做的事情,但是就在周一,由于同事的失误在毫无知觉的情况下误删了生产数据库几乎所有的数据。当我发现的那一刻,感觉头发都立起来了,心想这他...
  • xwnxwn
  • xwnxwn
  • 2016-12-09 13:29:08
  • 8344

Oracle数据库中对误删数据的恢复

采用闪回技术对误删除的数据进行恢复。
  • baidu_38645830
  • baidu_38645830
  • 2017-11-21 11:34:03
  • 288

关于raid5数据恢复

前不久遇到了一件特别悲催的事,可谓血的教训,事后发觉作为一名网管人员定时做数据备份是件多么重要的事情!!! 单位有台08年配发的联想万全T350 G6C  4块硬盘做的Raid5,服务器在使用过程中...
  • shell811127
  • shell811127
  • 2013-06-04 23:13:50
  • 2527
    个人资料
    持之以恒
    等级:
    访问量: 4万+
    积分: 1484
    排名: 3万+
    文章分类
    最新评论