一、虚拟机故障环境描述
客户的物理机器操作系统为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、校验残留索引信息的正确性,修复破坏不严重的索引;
图为获取的索引等信息:

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

虚拟机数据恢复案例截图2

三、数据恢复结果

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

虚拟机数据恢复案例截图3

虚拟机数据恢复案例截图4

四、数据验证

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

转载于:https://blog.51cto.com/sun510/2104365

Linux系统 误删除kvm虚拟机数据恢复方法-数据恢复成功案例相关推荐

  1. 虚拟机安装linux系统无法上网的解决方法

    虚拟机安装linux系统无法上网的解决方法 参考文章: (1)虚拟机安装linux系统无法上网的解决方法 (2)https://www.cnblogs.com/liuqiyun/p/9585643.h ...

  2. Linux实战之KVM虚拟机安装爱快软路由系统

    Linux实战之KVM虚拟机安装爱快软路由系统 一.爱快官方下载固件镜像 二.上传镜像到WebVirtMgr 1.上传镜像到宿主机的共享存储目录 2.在WebVirtMgr上查看共享存储镜像 三.创建 ...

  3. 误删除oracle目录,LINUX下误删除Oracle数据库恢复方法

    原标题:LINUX下误删除Oracle数据库恢复方法 在LINUX下的Ext3/Ext4文件系统下,如果误删除了数据,数据恢复难度很大.如果说删除的文件数量不大(一般在几百个文件以内),还能够通过.j ...

  4. 【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用

    基于Linux命令行KVM虚拟机的安装配置与基本使用 https://alex0227.github.io/2018/06/06/%E5%9F%BA%E4%BA%8ELinux%E5%91%BD%E4 ...

  5. linux物理内存地址与iomem,一种Linux系统物理内存镜像文件分析方法_4

    模块信息,如图7所示,给出了本发明的实施例中 模块结构关系图,modules变量指向某一个已加载模块结构体module地址,所有已加载模 块其module形成一个双向链表,如图7所示,据此可以获取到所 ...

  6. linux光盘补救,Linux_忘记root密码时使用Linux系统光盘进行补救的方法,救援模式即rescue ,这个模式主 - phpStudy...

    忘记root密码时使用Linux系统光盘进行补救的方法 救援模式即rescue ,这个模式主要是应用于,系统无法进入的情况.如,grub损坏或者某一个配置文件修改出错.如何使用rescue模式呢? 光 ...

  7. linux系统fuser命令,Linux系统使用Fuser命令的方法

    fuser命令是一个非常聪明的unix实用程序,用于查找正在使用某个文件.目录或socket的进程. 它还提供有关拥有该进程的用户和访问类型的信息..fuser工具显示了使用指定文件或文件系统的每个进 ...

  8. linux用户恢复正常,Linux系统用户口令安全恢复方法

    Linux系统用户口令安全恢复方法 2007-09-07 eNet&Ciweek 有许多原因可能导致用户口令的遗失,这对系统管理员而言,可能不是一个问题,只要以root账号登录,再用passw ...

  9. Linux系统挂起进程的几种方法

    Linux系统挂起进程的几种方法 法一 nohup run.sh & --> 输入 exit 推出,会自动 将 输出 写到 当前目录下的 nohup.txt里 法二 使用 tmux 的方 ...

最新文章

  1. 理解、学习与使用Java中的Optional
  2. 2016 ACM/ICPC Asia Regional Shenyang Online
  3. 多线程编程--异步转同步之CountDownLatch
  4. 管天管地管空气!谷歌探索用CV估算空气质量
  5. 比赛中学习(2)-voc数据集制作中将.txt文件变为.xml文件
  6. vc2005 seh新认识
  7. 测测你写了多少行代码【转】
  8. linux 集群管理工具,运维人员能轻松管理集群的必备工具有哪些?
  9. LINUX下载编译FreeType
  10. 安装VS2010 SP1失败,安装VS2010 SP1时出现回滚,
  11. Unix网络编程之epoll函数模拟10万客户端链接服务器
  12. python+neo4j ,Dota2自走棋,小型知识图谱构建
  13. Python爬虫(四)——小说下载器
  14. 第二周 Linux文件管理类命令及bash基本特性
  15. 一步一回头撞在了南墙上
  16. Windows中使用curl命令报错curl post [globbing] unmatched close brace/bracket in column 67
  17. JavaSE:抽象(abstract)
  18. 待解决问题-流体力学
  19. PHM寿命预测内容定稿
  20. windows消息处理过程及消息钩子

热门文章

  1. mysql5.5以上开启慢查询
  2. 从SEO效果看谷歌百度360搜狗有道bing技术现状
  3. jquery格式化时间
  4. 目标检测之线段检测---lsd line segment detector
  5. TP 720N V3 8M flash 无TTL 刷回原厂教程
  6. 一种定位内存泄露的方法(Linux)
  7. CoverageMeter中关于“line coverage”不准确的解释
  8. Tomcat服务器端口的配置
  9. 2018年4月26日笔记
  10. js实现图片轮播(终结版)