虚拟化数据恢复—XenServer虚拟机虚拟磁盘文件丢失的数据恢复案例

article/2025/8/6 3:41:11

虚拟化环境:

某品牌720服务器中有一组通过型号为H710P的RAID卡+4块STAT硬盘组建的RAID10,上层部署Xen Server服务器虚拟化平台。虚拟机安装的Windows Server系统,运行Web服务器。有系统盘 + 数据盘两个虚拟机磁盘。

虚拟化故障:
机房断电导致XenServer服务器中一台VPS(XenServer虚拟机)不可用,虚拟磁盘文件丢失。

虚拟化数据恢复过程:
1、将故障服务器中的硬盘编号后取出,挂接到准备好的数据恢复服务器上。以只读方式将所有硬盘做完整镜像,镜像完成后将所有硬盘根据编号按照原样还原到原服务器上。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析所有硬盘底层数据,发现服务器中虚拟机的磁盘是通过LVM来管理的,即每个虚拟机的虚拟磁盘都是一个LV,虚拟磁盘采用精简模式。LVM的相关信息记载在Xen Server中,查看LVM的相关信息发现并没有存在损坏的虚拟磁盘信息,因此可以断定LVM的信息已经被更新了。接着分析底层看能否找到未被更新的LVM信息,果不其然在底层发现了还未更新的LVM信息。

3、北亚企安数据恢复工程师根据未被更新的LVM信息找到虚拟磁盘的数据区域,发现该区域的数据已被破坏。分析后发现虚拟机的虚拟磁盘被破坏导致虚拟机中的操作系统和数据丢失。仔细核对这片区域后发现很多数据库的页碎片。
经过会诊,北亚企安数据恢复工程师确定了2套数据恢复方案。
4、数据恢复方案一:
根据RAR压缩包的结构找到压缩包的数据开始位置,RAR压缩包文件的第一个扇区中会记录此RAR的文件名。根据从用户方获取到的备份数据库的压缩包文件名和找到的压缩包的文件名相匹配,即可找到备份数据库压缩包的开始位置。找到压缩包的位置后仔细分析这片区域的数据,然后将此区域的数据恢复出来重命名为一个RAR格式的压缩文件。尝试解压此压缩包,结果报错。

仔细分析恢复出来的压缩包,发现中部分数据被破坏了,因此解压报错。尝试使用RAR修复工具进行修复。修复完成之后解压,解压的数据中只发现网站的部分代码,并没有发现数据库。可以判断备份文件损坏。
解压出来的部分网站代码:

5、数据恢复方案二:
由于方案一无法将数据库恢复出来,因此采用方案二恢复数据。
根据SQL Server数据库的结构去底层分析数据库的开始位置。在SQL Server数据库的结构中,第9个页会记录本数据库的数据库名。因此,获取到数据库的名称之后,通过分析底层找到数据库的开始位置。
在SQL Server数据库的每个页中都会记录数据库页编号以及文件号。北亚企安数据恢复工程师根据SQL Server数据库的这些特征编写程序在底层扫描符合数据库页的数据。
将扫描出来的碎片按顺序重组成一个完整MDF文件。通过MDF校验程序检测MDF文件的完整性。
重建的MDF文件:

6、检测没有问题后,搭建数据库环境,并将重组后的数据库附加到搭建好的数据库环境中。查询相关表数据是否正常,以及最新数据是否存在。

7、由于需要结合网站代码才能更好的验证数据库的完整性。搭建好了网站之后,将恢复出来的数据库发给用户方。经过用户验证后,数据库没有问题。数据恢复工作完成。


http://www.hkcw.cn/article/qMCepbZeDs.shtml

相关文章

Java 之殇:从中流砥柱到“被温柔替代”

—— 一位老派 Java 工程师的自述 今天看到一篇江苏的作者发出的《公司Rust团队全员被裁,只因把服务写得「太稳定」:“项目0故障、0报警,那养着3个Rust工程师没用啊”》帖子。看到那篇文章第一反应也是:这八成是 AI 编的。但说实…

vscode一直连接不上虚拟机或者虚拟机容器怎么办?

1. 检查并修复文件权限 右键点击 C:\Users\20325\.ssh\config 文件,选择 属性 → 安全 选项卡。 确保只有你的用户账户有完全控制权限,移除其他用户(如 Hena\Administrator)的权限。 如果 .ssh 文件夹权限也有问题,同…

面试中的项目经验考查:如何让实战经历成为你的决胜王牌

阅读原文 "你在项目中遇到的最大困难是什么?" 当面试官抛出这个问题时,你是否曾感到一阵心虚?是否担心自己的回答显得单薄无力?在竞争激烈的技术岗位面试中,项目经验往往是决定成败的关键因素。资深HR甚至建…

基于Java(SSH框架)+MySQL 实现(Web)公司通用门户(CMS)网站

一、公司通用门户网站的设计与实现 摘要:随着IT应用的深入普及,各行各业都积累了大量的信息资源,实现企业内部信息技术资源的有效整合和精益化管理,是越来越多公司企业的迫切需求。公司门户网站是一个企业向外宣传企业品牌和展示…

vue3实现鼠标悬浮div动画效果

需求 鼠标悬浮在div上显示下载按钮和信息&#xff0c;同时保持下面的div位置不变&#xff1b;当鼠标移走的时候就隐藏恢复原样。 效果&#xff1a; 代码 <script setup> const software ref([{id: "one",title: "软件",container: [{id: "123…

数据结构与算法之单链表面试题(新浪、百度、腾讯)

单链表面试题&#xff08;新浪、百度、腾讯&#xff09; 求单链表中的有效节点的个数 public int getCount(HeroNode head) {Hero1 cur head.getNext();int count 0;while(cur ! null) {count;cur cur.getNext();}return count;}查找单链表中的倒数第k个结点【新浪面试题】…

Google Play推出新功能:用户可直接向Gemini提问应用相关问题

5 月 30 日消息&#xff0c;谷歌在Google Play中广泛推出了由 Gemini AI 提供支持的“向Google Play询问此应用”功能&#xff0c;该功能已正式出现在Google Play的46.1.39-31 版本中。 “向Google Play询问此应用”这项功能&#xff0c;将 Gemini AI 直接集成到Google Play中&…

PyTorch学习(1):张量(Tensor)核心操作详解

PyTorch学习(1)&#xff1a;张量&#xff08;Tensor&#xff09;核心操作详解 一、张量&#xff08;Tensor&#xff09;核心操作详解 张量是PyTorch的基础数据结构&#xff0c;类似于NumPy的ndarray&#xff0c;但支持GPU加速和自动微分。 1. 张量创建与基础属性 import to…

农村土地承包经营权二轮延包—生成地块的KJZB字段

"关于地块的空间坐标&#xff08;KJZB&#xff09;字段&#xff0c;可能稍微复杂一点&#xff0c;用脚本生成较好。空间坐标&#xff0c;目前有两种表达&#xff1a;方案一&#xff0c;根据地块上界址点的个数依次填上&#xff08;如4个为J1/J2/J3/J4&#xff09;&#xf…

时空数据智能分析的原理和案例分享

在当今数字化时代,时空数据如同隐藏在海量信息中的宝藏,蕴含着丰富的价值,等待我们去挖掘和利用。从城市交通的实时监测与优化,到自然灾害的预警与防范,从精准农业的智能管理,到金融市场的动态分析,时空数据的身影无处不在,深刻地影响着我们生活的方方面面。DeepSeek,…

专场回顾 | 重新定义交互,智能硬件的未来设计

自2022年起&#xff0c;中国智能硬件行业呈现出蓬勃发展的态势&#xff0c;市场规模不断扩大。一个多月前&#xff0c;“小智AI”在短视频平台的爆火将智能硬件带向了大众视野&#xff0c;也意味着智能硬件已不再仅仅停留在概念和技术层面&#xff0c;而是加速迈向实际落地应用…

解决访问网站提示“405 很抱歉,由于您访问的URL有可能对网站造成安全威胁,您的访问被阻断”问题

一、问题描述 本来前几天都可以正常访问的网站&#xff0c;但是今天当我们访问网站的时候会显示“405 很抱歉&#xff0c;由于您访问的URL有可能对网站造成安全威胁&#xff0c;您的访问被阻断。您的请求ID是&#xff1a;XXXX”&#xff0c;而不能正常的访问网站&#xff0c;如…

十二、【核心功能篇】测试用例列表与搜索:高效展示和查找海量用例

【核心功能篇】测试用例列表与搜索&#xff1a;高效展示和查找海量用例 前言准备工作第一步&#xff1a;更新 API 服务以支持分页和更完善的搜索第二步&#xff1a;创建测试用例列表页面组件 (src/views/testcase/TestCaseListView.vue)第三步&#xff1a;测试列表、搜索、筛选…

Windows环境下PHP,在PowerShell控制台输出中文乱码

解决方法&#xff1a; 以管理员运行PowerShell , 输入&#xff1a; chcp 65001 重启控制台&#xff1b;然后就正常输出中文&#xff1b;

安卓apk安装包签名步骤

1.获取apk对应的原始证书&#xff08;问前端要&#xff09; 2.打开命令窗口win r 输入 cmd 3.输入 cd .android 定位到 .android 文件夹 4.执行证书签名命令 keytool -genkey -v -keystore 前端提供的.keystore -alias 自定义别名信息 -keyalg RSA -validity 10000 密钥为&a…

C与C++相互调用

C与C为什么相互调用的方式不同 C 和 C 之间的相互调用方式存在区别&#xff0c;主要是由于 C 和 C 语言本身的设计和特性不同。 函数调用和参数传递方式不同 &#xff1a; C 和 C 在函数调用和参数传递方面有一些不同之处。 C 使用标准 的函数调用约定&#xff0c;而 …

Nest全栈到失业(附加):Mysql+TypeOrm构建CRUD

前置内容 在此之前,我希望你准备好一个docker环境,以及魔法的网络哦 自己创建一个项目哈,使用nest new XXX Docker 什么是docker?相信很多人都知道了,说白了,就是一个镜像容器;以mysql为例,你在电脑上使用mysql5.6啥的,他电脑上是5.7啥的,然后数据内容不兼容了,怎么办了?他卸…

InnoDB引擎逻辑存储结构及架构

简化理解版 想象 InnoDB 是一个高效运转的仓库&#xff1a; 核心内存区 (大脑 & 高速缓存 - 干活超快的地方) 缓冲池 Buffer Pool (最最核心&#xff01;)&#xff1a; 作用&#xff1a; 相当于仓库的“高频货架”。把最常用的数据&#xff08;表数据、索引&#xff09;从…

基于定制开发开源AI智能名片S2B2C商城小程序的大零售渗透策略研究

摘要&#xff1a;本文聚焦“一切皆零售”理念下的大零售渗透趋势&#xff0c;提出以定制开发开源AI智能名片S2B2C商城小程序为核心工具的渗透策略。通过分析该小程序在需求感应、场景融合、数据驱动等方面的技术优势&#xff0c;结合零售渗透率提升的关键路径&#xff0c;揭示其…

基于SpringBoot的在线拍卖系统计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…