Hyper-V数据文件丢失解决方案(有图有真相)

一、Hyper-V虚拟化故障概述

1、虚拟机环境
故障虚拟化环境为ESXI虚拟化服务器,虚拟机环境,虚拟机的硬盘文件和配置文件放在北京某服务器托管公司的DELL MD3200存储中(存储由5块容量为600G的硬盘组成raid磁盘阵列)。该存储中4块硬盘用作存储虚拟机的数据文件。单块硬盘用作虚拟机数据文件的备份。

2、虚拟机故障分析

对MD3200存储服务器进行物理检测:发现存储并未出现物理故障,涉事硬盘均正常工作
检查操作系统:工作正常中,未发现出错进程,排除因操作系统BUG导致的数据丢失。
分析丢失数据硬盘的文件系统:打开正常,不符合病毒破坏的表现特征,同时经杀毒软件检测无病毒。再仔细分析硬盘的文件系统,发现此文件系统的元文件创建时间为4月24日,表明文件系统的创建时间为4月24日,与数据丢失的时间相吻合。通常这种故障表明文件系统被人为重写了,即分区被格式化了。
检查系统日志:发现系统日志11月28号之前以及当天的系统日志已被清空,审核日志和服务日志却并未清空。通常情况下,此操作应该由人为导致。而格式化分区的操作只记录在系统日志中,这与上述人为破坏的表现相符。
尝试恢复系统日志:仔细分析硬盘底层数据,发现硬盘底层中需要恢复的系统日志已被新的日志记录覆盖,无法恢复。
分析操作系统中的所有分区:发现只有MD3200存储中的两个分区的文件系统被重新写入文件系统了。通常情况下,对两个分区的格式化需要有两个独立的过程,因此这种针对性的操作应该由人为导致。

3、导致该故障的常见方式总结

通过在分区上“右键”,选择“格式化”按钮,可以格式化选中的分区。
在开始菜单“运行”中输入“cmd”命令进入到命令行模式,然后使用FORMAT命令,可以格式化指定分区。
创建一个bat文件,在文件中写入格式化的命令,然后运行bat文件可以格式化指定分区。
因为有两个独立的文件系统数据丢失,故上述的流程可能被执行了多次。应该因人为操作导致。

二、制定虚拟机数据恢复方案

1.对丢失数据的硬盘。做全盘备份,以确保数据的安全性。
2.分析每个硬盘的数据,根据分析的结构重组RAID 阵列。
3.分析重组完的阵列,看能否找到原有的文件索引项及对应的数据区。
4.核对查到的文件索引项是否符合用户数据,并核对相应的数据区有无破坏。

  1. 根据扫描到的文件索引项碎片,将其拼接成一个完整的目录结构。
    6.根据拼接好的目录项去底层恢复对应的数据,并检查数据是否正确。
    7.核对数据没问题后恢复所有数据。

三、实施解决方案

1.备份用户数据
由于数据全部都放Dell M3200存储中,因此只需要恢复Dell M3200存储中的数据即可。将Dell M3200存储中所有的硬盘编号标记后从存储中拔下来交给硬件数据恢复团队检测硬盘是否存在物理故障。经检测没问题后对每块硬盘做全盘镜像,使用数据恢复工具将硬盘中所有扇区镜像到一块备份硬盘中。
如下图:使用专业数据恢复工具备份所有硬盘数据
Hyper-V数据文件丢失解决方案

2、重组磁盘阵列

对所有硬盘进行镜像备份后分析每块硬盘上的数据。发现4块600G硬盘做了一个RAID5,另一块600G硬盘做为数据备份使用。通过对硬盘结构进行详细分析得出该RAID 5磁盘阵列的相关信息,如:条带大小,条带走向等信息。根据这些信息即可重组此RAID。
如下图:使用专业工具重组RAID
Hyper-V数据文件丢失解决方案

如下图:是用专业工具打开硬盘阵列的情况
Hyper-V数据文件丢失解决方案


3、扫描旧的文件索引项

仔细分析硬盘底层数据,发现硬盘底层中还残留着许多以前文件系统的目录项及文件索引。经过仔细核对发现这些文件索引指向的数据都是用户丢失的文件内容。但由于整个硬盘太大,人工去搜索文件索引会很慢,因此编写一个提取文件索引项的小程序,对整个硬盘中所有存在的文件索引项做扫描,提取所有文件的文件索引项。

4、分析扫描到文件索引项

对扫描到的所有文件索引项分析,发现其索引项均不连续并且大多以14K或6K对齐。正常情况下的文件索引项是连续且大小固定,每个文件索引项对应一个文件或目录。扫描出来的这些不连续、不完整的文件索引项是无法正常索引到文件的内容,因此需要对扫描出来的文件索引项做加工处理。在扫描出来的文件索引项中搜索” .VHD”,能找到一个” .VHD”的文件记录。然后将这个片连续的文件索引项提取出来。接着再查看这段提取出来的文件索引项中是否有指向下一段文件索引项的记录或者是H20属性。如果有则根据文件索引项中的特征去匹配下一段文件索引项,如果没有则跳过这段文件索引项。根据以上方法基本能查到大多数的文件索引项片段。而缺失的文件索引项片段有可能被破坏了,但是可以从数据备份盘中去查找缺失的文件索引项片段,因此基本可以搜索到大部分的文件索引项。
如下图:是文件索引项截图
Hyper-V数据文件丢失解决方案


5、将文件索引项组成完整的目录结构

根据上述方法找到所有文件索引项,根据文件索引项的编号将其拼接成整个目录项结构。以下是搜索到的部分文件索引项,由于有部分文件索引项被破坏,因此只能找到大部分文件索引项,但这些文件索引项已经足以拼接成整个目录结构了。
如下图:是扫描到的文件索引项碎片
Hyper-V数据文件丢失解决方案

四、修复文件系统

将重建好的目录结构和现有文件系统中的目录结构进行替换,然后使用数据恢复工具修改部分校验值。再使用数据恢复工具解释这个目录结构即可看到原有丢失的数据。
如下图:是用专业工具解释出来的目录结构
Hyper-V数据文件丢失解决方案
Hyper-V数据文件丢失解决方案

为了确定数据是否正确,将其中一个最新的VHD文件恢复出来。然后将其拷贝到一台支持附加VHD的服务器上,尝试附加此VHD。结果附加成功,检查VHD中最新的数据是否完整。一切检查完整后将所有数据恢复到一块硬盘中。
如下图:是恢复出来的所有虚拟机数据文件
Hyper-V数据文件丢失解决方案

五、验证所有数据

在一台测试服务器上搭建Hyper-V的环境,将恢复的虚拟机文件连接到这台服务器上,通过导入虚拟机的方式将恢复的数据都迁移到新的Hyper-V环境。最后让客户来验证所有虚拟机是否完整。
如下图:是虚拟机导入的过程
Hyper-V数据文件丢失解决方案
Hyper-V数据文件丢失解决方案

六、迁移所有数据

在客户验证所有虚拟机数据恢复成功后,将所有数据拷贝至客户服务器中。然后利用导入的方式将虚拟机导入到客户的Hyper-V环境中。
Hyper-V数据文件丢失解决方案

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL小技巧,动态输出本周各天日期

SET DATEFIRST 1; --设置周一为每周第一天 SELECT DATEFIRST;WITH w AS(SELECTCONVERT(varchar(10),T.[Date],120) AS [Date],DATENAME(weekday, T.[Date] ) AS [Week],DATEPART(WK, T.[Date]) AS WeekIndexFROM(SELECTDATEADD(DAY, number, DATEADD(wk, DATEDIFF(wk, 0, get…

开源的价值观与文化的传递

| 作者:Sharan Foga, Apache 软件基金会董事(2021 届、2022 届),曾亲身来到 2019 中国开源年会(COSCon19)以本文内容发表主题演讲。| 翻译:刘天栋.Ted,徐红伟.stronghx| 审阅&#x…

用python来更改小伙伴的windows开机密码,不给10块不给开机

今天教大家用python脚本来控制小伙伴们windows电脑的开机密码。没错就是神不知鬼不觉,用random()随机生成的密码,只有你自己知道哦~ 代码呢分两部分,一部分是client端跟server端两个。你只需要想办法让小伙伴运行你的client端脚本就OK啦。不过…

el-upload 防止选择上传重复文件

<el-uploadref"uploadRef"multipledragaction"":auto-upload"false":file-list"msgPara.MsgFileList":on-change"handleFileChanged" ><el-button type"primary">选择文件</el-button> </el…

jmete 学习--基础之名词解释

一.jmeter 体系结构 1.名词解释 元件 jmemter工具菜单中的一个子菜单&#xff0c;如http请求&#xff0c;事务控制器等&#xff0c;就是一个元件。 组件 一组元件的集合&#xff0c;比如逻辑控制器中有事务控制器&#xff0c;仅一次控制器等&#xff0c;这些都是hi元件&#x…

Virtual script not found, may missing <script lang=“ts“> / “allowJs“: true / jsconfig.json.volar

解决办法&#xff1a; 在 jsconfig.json 配置文件中设置 "allowJs": true 如果没有jsconfig.json文件&#xff0c;直接在项目要目录创建一个&#xff0c;添加如下配置内容即可&#xff1a; /** Title: This is a file for ……* Author: JackieZheng* Date: 2022…

协鑫集成“熄灯工厂”装上ET工业大脑,验证订单命中率可提高3.99%

4月26日的云栖大会南京峰会&#xff0c;协鑫集成宣布&#xff0c;与阿里云ET工业大脑合作后&#xff0c;通过人工智能验证的订单命中率可提高3.99%。 协鑫集成是全球一线组件制造商&#xff0c;积极致力于推进自主创新与智能制造&#xff0c;综合运用信息通讯、物联网、大数据决…

pip install mysql-connector 安装出错

一、MySQL Connector/Python 2.2.3 的变化&#xff1a; 之前 mysql 官方说MySQL Connector/Python 是纯python语言写的&#xff0c;但是呢&#xff01; 这个问题在2.2.3中变天了&#xff1b; 以下是MySQL Connector/Python 2.2.3 是变更记录 Changes in MySQL Connector/Python…

2022世界传感器大会 | 龙芯中科发布龙芯2K0500多功能SoC芯片及解决方案

8月21日&#xff0c;由工业和信息化部、中国科学技术协会、河南省人民政府共同主办的2022世界传感器大会在郑州开幕&#xff0c;众多诺奖、图灵奖获得者、海内外院士和专家学者出席&#xff0c;全球传感器领域最具影响力的相关企业参加。龙芯中科董事长胡伟武在大会开幕式发表主…

Vue3 配置config文件,打包后随意修改配置,无需重新打包和重启

在public目录创建config.json文件&#xff0c;名字随便起。 {"AppVersion": "1.0","AppTitle": "这里是程序名称" } 修改AppTitle&#xff1a; {"AppVersion": "1.0","AppTitle": "这里是修改后的…

在Vue3中使用Element Plus Icon图标的几种方式

安装 Element Plus $ npm install element-plus/icons在main.js 引入 import * as ElIcon from element-plus/icons-vueObject.keys(ElIcon).forEach((key) > {app.component(key, ElIcon[key]) }) 方式一&#xff1a;通过 icon"el-icon-plus" 使用 <!-- …

Qt 打印机操作

2019独角兽企业重金招聘Python工程师标准>>> 配置文件加入打印机支持&#xff1a; QT printsupport 1、打印图片 打印图片所需头文件&#xff1a; #include <QPixmap> #include <QPrinter> #include <QPainter> 打印图片代码&#xff1a; QStrin…

spark集群详细搭建过程及遇到的问题解决(四)

在spark集群详细搭建过程及遇到的问题解决&#xff08;三&#xff09;中&#xff0c;我们将讲述了hadoop的安装过程&#xff0c;在本文中将主要讲述spark的安装配置过程。sparkmaster:~/spark$ cd hadoop sparkmaster:~/spark/hadoop$ cd $SPARK_HOME/conf sparkmaster:~/spark…

k8s 读书笔记 - 深入掌握 Pod

什么是 PodPod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。在同一个 context 下&#xff0c;应用可能还会有独立的 cgroup 隔离机制&#xff0c;一个 Pod 是一个容器环境下的 “逻辑主机”。Pod 是一组容器单元&#xff0c; 这些容器共享存储、网络、以及怎…

Net core 报 Could not load file or assembly ‘System.Security.Permissions 错误

完整错误提示 System.IO.FileNotFoundException:“Could not load file or assembly System.Security.Permissions, Version4.0.3.0, Cultureneutral, PublicKeyTokencc7b13ffcd2ddd51. 系统找不到指定的文件。” 控制台 错误提示&#xff1a; 根据提示可知&#xff1a;这是由…

“芯”痛痛在系统与芯片 转型升级是历史趋势

2019独角兽企业重金招聘Python工程师标准>>> 4月23号&#xff0c;中共中央政治局召开会议&#xff0c;分析研究当前一系列经济工作形势&#xff0c;并且强调完成今年的目标任务&#xff0c;需要付出艰苦努力&#xff0c;关键是要同高质量发展的要求对表&#xff0c;…

如何让Vuex刷新页面数据不丢失?实现方法和原理 vuex-persistedstate 和 vuex-persist的使用

如题&#xff1a;由于vue自身特性的原因&#xff0c;vuex中的数据在页面刷新之后其中的数据会初始化&#xff0c;这就导致组件之间通过vuex传递的数据在用户f5刷新页面之后会丢失 页面刷新后&#xff0c;想保存页面未保存的数据。我们总是习惯于放在浏览器的sessionStorage和l…

linux系统中如何查看日志 (常用命令)

2019独角兽企业重金招聘Python工程师标准>>> linux系统中如何查看日志 (常用命令) cat tail -f 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志&#xff0c;是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/…

刚刚 Kubernetes 1.25 正式发布,所有变化都在这儿了

此版本带来了 40 项增强功能&#xff0c;略少于Kubernetes 1.24 中的 46 项。在这 40 项增强功能中&#xff0c;13 项正在升级到稳定版&#xff0c;10 项是对现有功能的不断改进&#xff0c;15 项是全新的&#xff0c;2 项是已弃用的功能。此版本的亮点是 PodSecurityPolicies …

vue经验 - 细节小知识点汇总(更新中...)

1. $refs 数据这么绑定的&#xff1a; 然后在created中抛出来&#xff0c;猜猜看看打印的是两个什么&#xff1f; 结果如下&#xff1a; 第一个跑出来了&#xff0c;第二个&#xff0c;却undefiend&#xff0c;没有东西&#xff1f;&#xff01;。。。 后来去官网查看$refs的解…