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

一、虚拟机故障环境描述
客户的物理机器操作系统为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

四、数据验证

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

原文地址:http://blog.51cto.com/sun510/2104365

时间: 2024-08-14 16:48:41

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

linux系统下kvm虚拟机的安装

一 KVM虚拟机简介 KVM是kernel-based Virtual Machine的简称,目前已成为学术界的主流VMM之一.KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术) 是基于硬件的完全虚拟化.KVM的安装和使用相对于XEN来说十分的简单和方便,并且功能强大,比较适用于高性能计算服务的云计算环境中作为IAAS层的虚拟化部署工作 不得不提的是甲骨文公司的VirtualBox也很强大,各方面与KVM可以相媲美,但是现在不开源比较昂贵一般的云计算平台很少使用.至于完全虚拟

基于linux系统,fsck后数据丢失的数据恢复方案

一.总述:基于linux系统,fsck后数据丢失的数据恢复方案 二.解决方案 2.1 恢复流程 2.1.1 检测流程 1.检测是否存在硬件故障,如硬件故障,转硬件处理 2.以只读方式检测故障表现是否与用户描述相同 2.1.2 恢复流程 1.备份:以只读方式对故障磁盘做完整镜像(参考附录) 2.如果需要恢复完整目录结构,则先需要完整恢复已丢失文件节点,再恢复数据.如果节点无法恢复,则可按文件类型进行恢复. 3.恢复后的数据会暂存在另一个存储体上 2.1.3 验收流程 对恢复好的数据进行验证,确认其

linux系统中安装虚拟机

在linux系统中,利用图形化界面安装虚拟机.首先启动 virt-manager,当然没有安装 virt-manager需要先安装好. 1 $ apt-get install virt-manager 2 $ virt-manager I. 准备工作. 1. 在linux系统上安装虚拟机环境KVM 1 $ apt-get install kvm qemu-kvm libvirt-bin virtinst bridge-utils virt-viewer 2 $ adduser root libv

虚拟机上在Linux系统中安装JDK的方法

1.   mkdir /soft      (创建一个目录,用于存放安装软件 ) 2.     cd /soft      (切换到soft目录 ) 3. rz(从windows中选择安装包) 4.rmp  -ivh jdk-7u45-linux-x64.rpm   (安装JDK) 5.find / -name 'jdk' 6.vi /etc/profile  (编辑环境变量)  在profile的最后写下面的地址 export JAVA_HOME=/usr/java/jdk1.7.0_45ex

Ubuntu等Linux系统清除DNS缓存的方法

buntu等Linux系统清除DNS缓存的方法 直接说方法: 如果系统下有nscd,那么就直接 sudo /etc/init.d/nscd restart 如果没有也没关系,网上接受的方法大都是 sudo aptitude install nscd sudo /etc/init.d/nscd restart 其实我们也可以直接 sudo /etc/init.d/dns-clean start 来完成的.

基于Linux命令行KVM虚拟机的安装配置与基本使用

背景 由于生产环境的服务器并不会安装桌面环境,简单操作的图形化安装也不适合批量部署安装.因此,我还是更倾向于在命令下安装配置KVM虚拟机.结合了一些资料和个人使用的状况,我大致列出了一些基本和常用的使用方法. 安装配置 一.环境介绍 操作系统:centos6.6 内核版本:2.6 IP地址:172.16.57.24 二.检查CPU 和 Xen 不同,KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持 egrep

案例讲解服务器硬盘离线数据恢复方法-数据恢复

服务器硬盘物理故障情况简介: 服务器简单来说就是计算机的一种,具有高速的CPU运算能力.长时间的可靠运行.强大的I/O外部数据吞吐能力以及更好的扩展性.多数企业配备有自己的服务器,同时也带来了服务器故障导致数据丢失的困惑,毕竟更换一台新设备无法恢复原有的设备,今天给大家简单介绍一下服务器硬盘故障导致数据丢失后的数据恢复方法,下面是案例背景. 北京某公司的一台服务器出现了硬盘故障,导致服务器瘫痪,数据丢失.经数据恢复中心服务器数据恢复工程师前往客户现场了检测发现,客户的服务器组建了raid5磁盘阵

linux系统和应用程序升级方法

当我们使用linux一段时间以后,自然不会满足总是在没有任何变化的系统中工作,而是渴望能象在windows系统中一样,不断对自己的linux进行升级.另一方面,linux本身就是一个开放的系统,每天都会有新的软件出现,linux发行套件和内核也在不断更新.在这样的情况下,学会对linux (包括系统本身和各种软件)进行升级就显得非常迫切了. 在Linux环境下,升级的对象可以是一般的软件,可以是编译器,也可以是系统的内核,甚至是系统本身.下面,虫虫就分别讲讲对不同对象的升级的方法. 1. 升级一

学习Linux系统中命令的简单方法

如果说如何快速学习.了解Linux的话,我的答案是学命令.背命令!为何呢?对于一名新手来说,去学习Linux的思想.了解Linux的架构.明白Linux中"一切皆文件"概念虽然说是没有错,是对的.但是个人认为去学习这些"高大上"的东西不是一时半会的事儿,它需要一定的时间和经验去沉淀才能掌握.那么如何最快速了解Linux并使用呢?我依然觉得学命令.背命令,掌握命令是比较笨但却是比较快的方式. 我开始学习Linux的时候,问了前辈:我入门Linux需要掌握哪些命令呢?前