当前位置:网站首页>【虚拟机数据恢复】意外断电导致XenServer虚拟机不可用的数据恢复
【虚拟机数据恢复】意外断电导致XenServer虚拟机不可用的数据恢复
2022-07-26 20:16:00 【北亚数据恢复】
虚拟机数据恢复环境:
Dell某型号服务器用RAID卡+4块STAT硬盘组成RAID10;
XenServer虚拟化系统,虚拟机操作系统是Windows Server;
两个虚拟机磁盘(系统盘 + 数据盘);
Web服务器(ASP + SQL的网站架构)。
虚拟机故障&分析:
服务器突然断电导致XenServer服务器中一台XenServer虚拟机不可用,虚拟磁盘文件丢失。服务器管理员联系我们数据恢复中心进行虚拟机数据恢复。
服务器数据恢复工程师首先将故障服务器上的硬盘连接到数据恢复服务器上对数据进行镜像备份。
通过镜像文件分析底层数据发现故障服务器中每个XenServer虚拟机的虚拟磁盘都是一个LV,虚拟磁盘模式是精简模式。LVM的相关信息在XenServer中都有记载,查看LVM的相关信息发现并没有损坏的虚拟磁盘信息,初步判断LVM的信息已经被更新。再次对底层进行分析还是找到了未更新的LVM信息。
如下图:

根据未被更新的LVM信息找到虚拟磁盘的数据区域,但是该区域的数据已被破坏。最终可以确定虚拟机不可用的原因是虚拟机的虚拟磁盘被破坏,虚拟机中的操作系统和数据丢失,而出现这种情况很可能是虚拟机遭遇网络攻击或hack入侵后留下的恶意程序造成的。仔细核对这片区域后,服务器数据恢复工程师发现虽然该区域很多数据被破坏了,但发现了很多数据库的页碎片,可以尝试将数据库的页碎片拼接成可用的数据库。
虚拟机数据恢复过程:
1、恢复方案一
根据RAR压缩包的结构找到压缩包的数据开始位置,RAR压缩包文件的第一个扇区中会记录此RAR的文件名。服务器数据恢复工程师通过匹配备份数据库的压缩包文件名和目前找到的压缩包位置的文件名,即可找到备份数据库压缩包的开始位置。找到压缩包的位置后分析这片区域的数据,将此区域的数据恢复出来并重命名为一个RAR格式的压缩文件。尝试解压此压缩包,解压报错如下图所示:

分析恢复出来的压缩包,服务器数据恢复工程师发现其中有部分数据损坏。使用RAR修复工具修复后解压出部分数据,结果解压出来的数据只有网站的部分代码,并没有发现数据库的备份文件。初步判断RAR压缩包中数据库的备份文件是损坏的。下图是解压出来的部分网站代码:

2、恢复方案二
由于方案一并没有将数据库恢复出来,服务器数据恢复工程师采用方案二恢复数据库。
根据SQL Server数据库的结构去底层分析数据库的开始位置。在服务器管理员获取到数据库名称之后,数据恢复工程师分析底层找到此数据库的开始位置。SQL Server数据库的每个页都会记录数据库页编号以及文件号,北亚数据恢复工程师根据SQL Server数据库的这些特征编写程序去底层扫描符合数据库页的数据。
然后将扫描出来的碎片按顺序重组成一个完整MDF文件,再通过MDF校验程序检测这个MDF文件是否完整。重组的MDF文件:

验证数据:
MDF校验程序检测没问题后搭建数据库环境。将重组后的数据库附加到搭建好的数据库环境中并查询相关表数据是否正常,查询最新数据是否存在。

由于数据库需要结合网站代码才能更准确验证数据库的完整性。用网站代码搭建好环境,然后将恢复好的数据库配置好进行验证。经用户亲自验证后最终确认数据库没问题,本次数据恢复成功。
边栏推荐
- Leetcode linked list class
- Go+mysql+redis+vue3 simple chat room, bullet 5: synchronize messages to MySQL using message queues and scheduled tasks
- 拦截器、、
- Installation and configuration of [basic services] [database] Clickhouse
- Sprinboot interview questions
- Correlation analysis between [machine learning] variables
- Swiftui 4's new function of real-time access to click location.Ontapgeture {location in} (tutorial with source code)
- leetcode 哈希表类
- GOM登录器配置免费版生成图文教程
- [JVM series] JVM tuning
猜你喜欢

08_ UE4 advanced_ Start end pause menu UI

Redis面试题

flask 源码梗概

PointPillars: Fast Encoders for Object Detection from Point Clouds 阅读笔记

GOM login configuration free version generate graphic tutorial

GOM and GEE lander list file encryption tutorial

NVIDIA canvas first experience~

Pointpillars: fast encoders for object detection from point clouds reading notes

Houdini 笔记2

Shell综合应用案例,归档文件
随机推荐
[JVM series] JVM tuning
易基因|宏病毒组测序技术介绍
flask 源码梗概
Message queue -- the problem introduced: repeated consumption & sequential consumption & distributed transactions
What is the origin of CNEX labs, which let Huawei lose the lawsuit?
The lawyer team of the US Department of justice asked the judge to refuse to accept Huawei's lawsuit
[pytoch foundation] torch.stack() function analysis
Houdini notes 2
APaaS低代码平台(一) | 把复杂留给自己,把简单留给用户
Why didn't Tencent create a game like "original God"
PLSQL package
消息队列——引入的问题:重复消费&顺序消费&分布式事务
Sprinboot interview questions
How to block the legendary GEE engine version? Close player account tutorial through script + engine
腾讯为什么没能造创造出《原神》这样的游戏
Web3.0 时代,基于P2PDB实现一款Dapp的技术理论
JDBC的连接
Buu brush inscription 2
BGP routing black hole and anti ring
Leetcode linked list problem -- 24. Exchange the nodes in the linked list in pairs (learn the linked list with one question and one article)