ESXi虚拟平台存储VMFS分区和虚拟机/VMDK恢复之—深度原理教程(附:真实恢复案例)

章节目录

ESXi数据存储介绍

VMFS分区定位

VMFS分区重建

虚拟机恢复

技术支持

 


ESXi数据存储介绍

VMware ESXi采用VMFS文件系统,从ESXi 3.5-6.5,分别使用VMFS3、VMFS5、VMFS6。

ESXi虚拟平台数据恢复有以下3个深度:

  1. VMFS分区恢复
  2. VMFS虚拟机恢复
  3. VMDK内部文件恢复

VMFS分区定位

分区表的类型

分区表有两种基本格式:MBR和GTP。MBR最多容纳四个分区,最大支持2TB分区。 目前磁盘普遍大于2TB,特别在ESXi虚拟平台上,分区基本都超过2TB,所以通常会使用 GUID分区表(GPT),GPT最大支持18EB空间,并支持扩展固件接口(EFI)。

 

本次案例是GPT分区格式。为了修复分区,必须要先确定VMFS卷的起始位置和结束位置。

VMFS分区结构中,定义“魔术数字”0xC001D00D标记VMFS_VOLINFO,再向前回退2048扇区,即为VMFS分区的起始位置。

我们需要一个十六进制编辑器,以便对十六进制或ASCII字符串进行全磁盘搜索。我们使用的是X-Ray公司的WinHex。

但是VMFS采用了little endian模式存储数据结构,因此“魔术数字”在磁盘上存储为0x0DD001C0。

本案例分区已经被覆盖,因此无法在主分区表中找到魔术数字。以下为正确GPT分区示例图:

ESXi虚拟平台存储VMFS分区和虚拟机/VMDK恢复之—深度原理教程(附:真实恢复案例)_第1张图片


VMFS分区重建

为了重建分区,必须解析GPT分区的结构。

GPT分区结构如下:

ESXi虚拟平台存储VMFS分区和虚拟机/VMDK恢复之—深度原理教程(附:真实恢复案例)_第2张图片

LBA0:

在GPT分区表的最开头,出于兼容性考虑仍然存储了一份传统的MBR(LBA 0),这个MBR叫做保护性MBR(Protective MBR)。

LBA1:

分区表头(LBA 1)定义了硬盘的可用空间以及组成分区表的项的大小和数量。以下为GPT分区表头的格式,注意为little endian:

起始字节

偏移量

内容

0

8

签名("EFI PART")

8

4

修订

12

4

分区表头的大小

16

4

分区表头(92个字节)的CRC32校验,在计算时,先把这个字段写作0处理,然后计算出所有分区表项的CRC32校验后再计算这个CRC32

20

4

保留,必须是 0

24

8

当前LBA(这个分区表头的位置)

32

8

备份LBA(另一个分区表头的位置)

40

8

第一个可用于分区的LBA(主分区表的最后一个LBA + 1)

48

8

最后一个可用于分区的LBA(备份分区表的第一个LBA - 1)

56

16

硬盘GUID(在类UNIX系统中也叫UUID

72

8

分区表项的起始LBA(在主分区表中是2)

80

4

分区表项的数量(windows是128,没有这么多也先占着空间)

84

4

一个分区表项的大小(通常是128)

88

4

分区表项的CRC32校验(计算的是所有分区表项的检验和即128*128字节)

92

420

保留,剩余字节必须是0(420字节针对512字节的LBA硬盘)

 

LBA 2–33

此位置存放分区表项。一个分区表项的前16字节是分区类型GUID,VMFS的分区类型为:0x2AE031AA0F40DB119590000C2911D1B8。接下来的16字节是该分区唯一的GUID(即分区的UUID)。再接下来是分区起始和末尾的64位LBA编号,以及分区的名字和属性。以下为GPT分区表项的格式:

起始字节

偏移量

内容

0

16

分区类型GUID

16

16

分区GUID

32

8

起始LBA(小端格式)

40

8

末尾LBA

48

8

属性标签

52

72

分区名

 

主分区表损坏时,可以用Backup 分区表恢复。我们通过魔术数字,找到备份分区表位于23437498367扇区;

一般情况我们不建议对目标磁盘有任何写入操作,但是为了快速恢复数据,数据修复工作室在备份了磁盘首部扇区后,参照备份分区表,直接修改磁盘扇区,手动重建了VMFS分区表。


虚拟机恢复

通过以上步骤,已经恢复了VMFS分区,通常情况可以直接看到虚拟机。此案例仍然无法显示虚拟机,原因是磁盘头部损坏时,也会破坏MFT,导致VMFS内的虚拟机文件无法直接读取,此时我们再通过虚拟机恢复软件自动扫描,即可恢复虚拟机:

ESXi虚拟平台存储VMFS分区和虚拟机/VMDK恢复之—深度原理教程(附:真实恢复案例)_第3张图片

在恢复数据机之前,可以通过log文件预览是否有乱码,简单确认数据是否受损:

ESXi虚拟平台存储VMFS分区和虚拟机/VMDK恢复之—深度原理教程(附:真实恢复案例)_第4张图片


特别注意

虚拟平台文件系统是封闭的,逆向底层数据结构难度大,而虚拟平台通常是生产环境,数据丢失情况少,大部分管理员在VMFS数据恢复方面的经验并不多,尝试性操作可能带来不预测的数据二次破坏。

本案例中,难点是VMFS分区表识别与重建。


技术支持

温馨提示:如重要数据丢失,建议在行动前咨询专业工程师,以免数据遭到二次破坏。

直接技术支持:shop396558956.taobao.com

官方网站:http://www.data-unit.com/


 

 

 

 

 

你可能感兴趣的:(数据恢复)