章节目录
ESXi数据存储介绍
VMFS分区定位
VMFS分区重建
虚拟机恢复
技术支持
ESXi数据存储介绍
VMware ESXi采用VMFS文件系统,从ESXi 3.5-6.5,分别使用VMFS3、VMFS5、VMFS6。
ESXi虚拟平台数据恢复有以下3个深度:
- VMFS分区恢复
- VMFS虚拟机恢复
- 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分区示例图:
VMFS分区重建
为了重建分区,必须解析GPT分区的结构。
GPT分区结构如下:
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内的虚拟机文件无法直接读取,此时我们再通过虚拟机恢复软件自动扫描,即可恢复虚拟机:
在恢复数据机之前,可以通过log文件预览是否有乱码,简单确认数据是否受损:
特别注意
虚拟平台文件系统是封闭的,逆向底层数据结构难度大,而虚拟平台通常是生产环境,数据丢失情况少,大部分管理员在VMFS数据恢复方面的经验并不多,尝试性操作可能带来不预测的数据二次破坏。
本案例中,难点是VMFS分区表识别与重建。
技术支持
温馨提示:如重要数据丢失,建议在行动前咨询专业工程师,以免数据遭到二次破坏。
官网:www.dataunit.cn