虚拟机数据恢复Linux系统下误删除KVM虚拟机的数据恢复案例

Posted 宋国建

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟机数据恢复Linux系统下误删除KVM虚拟机的数据恢复案例相关的知识,希望对你有一定的参考价值。

虚拟机故障:

一台Linux操作系统的服务器,EXT4文件系统。每台虚拟机包含一个qcow2格式的磁盘文件和一个raw格式的磁盘文件。这台服务器上的KVM虚拟机被误删除,管理员联系我们数据恢复中心要求恢复raw格式的磁盘文件,主要恢复的是存放数据库和程序代码等数据的三台虚拟化服务器。


虚拟机数据恢复过程:

1、数据恢复工程师拿到这台服务器的硬盘后对所有硬盘做镜像备份;

2、在镜像文件上分析EXT4文件系统,定位被删除虚拟机磁盘文件的节点位置,获取磁盘文件残留的索引信息;

3、校验残留索引信息的正确性,修复破坏不严重的索引;

图为获取的索引等信息:


【虚拟机数据恢复】Linux系统下误删除KVM虚拟机的数据恢复案例_数据


4、索引修复完成后,解析残留的各级索引,从虚拟机所在的卷中提取虚拟磁盘文件;

5、根据虚拟磁盘文件的提取情况,获取卷中未被索引到的自由空间;

6、校验提取出来的磁盘文件的正确性与完整性;

7、从自由空间中获取有效信息,尝试对虚拟磁盘文件进行修补(如节点,目录项,数据库页等信息)。

图为提取出的自由空间:


【虚拟机数据恢复】Linux系统下误删除KVM虚拟机的数据恢复案例_虚拟磁盘_02


8、由于索引丢失,提取出的虚拟磁盘文件并不完整。针对数据库文件有丢失的情况,可以从自由空间中获取数据库页去对数据库文件进行修补,但由于部分页所在区域被覆盖占用,只能尽量多的去补页;

9、对于存放程序代码的服务器中的节点和目录项丢失的情况,若节点或目录项有残留,可以尝试去补齐节点和目录项。但部分文件的节点和目录项都丢失了。由于节点和目录项之间的相关联,这种情况无法补齐。由于程序代码文件不具备一定规律性,如果数据区丢失则无法补齐。

图为恢复出的部分目录结构:


【虚拟机数据恢复】Linux系统下误删除KVM虚拟机的数据恢复案例_服务器_03图 3


【虚拟机数据恢复】Linux系统下误删除KVM虚拟机的数据恢复案例_虚拟磁盘_04


数据验证:

在尽可能的尝试对虚拟磁盘文件及其中的数据库文件修补之后,由管理员对数据进行验证。由于上述的原因,数据有小部分丢失,但是恢复出来重要的数据没有问题,这次数据恢复工作有效。

以上是关于虚拟机数据恢复Linux系统下误删除KVM虚拟机的数据恢复案例的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统之虚拟化实战PVE下KVM虚拟机的嵌套安装方法

Linux之部署KVM虚拟化平台

linux kvm 的虚拟机处于暂停状态怎么开机

linux下kvm虚拟机的搭建

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

实现将VirtualBox 虚拟机转换为KVM虚拟机的步骤