下面以创建一个动态磁盘简单卷的过程为例,详细分析LDM的结构。

创建一个卷

图4-113所示是一个没有初始化的硬盘。这里就以这块硬盘为例,创建动态磁盘简单卷。

动态磁盘的实例分析-数据恢复迷

图4-113 一个没有初始化的硬盘

在创建动态磁盘简单卷之前,先用WinHex打开这块硬盘,查看第一个扇区的数据,可以但到没有任何数据,完全是“0”值,如图4-114所示。

动态磁盘的实例分析-数据恢复迷

图4-114 硬盘第一个扇区没有任何数据

下面创建动态磁盘简单卷。

第1步 初始化磁盘

在图4-113的左侧“磁盘1”处单击鼠标右键,并在出现的菜单中选择“初始化磁盘”,如图4-115所示。

动态磁盘的实例分析-数据恢复迷

图4-115 初始化磁盘

初始化完成后,“磁盘1”就成为一块“基本”磁盘了,如图4-116所示。

动态磁盘的实例分析-数据恢复迷

图4-116 “磁盘1”成为MBR磁盘

这时再用WinHex查看硬盘的第一个扇区,发现这已经是一个MBR扇区了,扇区中写入了引导程序、磁盘签名及结束标志,因为还没有分区,所以分区表部分没有数据,如图4-117所示。

动态磁盘的实例分析-数据恢复迷

图4-117 初始化后的MBR扇区

第2步 转换到动态磁盘

在图4-116的左侧“磁盘1”处单击鼠标右键,并在出现的菜单中选择“转换到动态磁盘”,如图4-118所示。

动态磁盘的实例分析-数据恢复迷

图4-118 转换到动态磁盘

之后出现磁盘选择菜单,如图4-119所示。

动态磁盘的实例分析-数据恢复迷

图4-119 磁盘选择菜单

选择“磁盘1”做动态磁盘转换,转换完成后,“磁盘1”就成为一块“动态”磁盘了,如图4-120所示。

动态磁盘的实例分析-数据恢复迷

图4-120 “磁盘1”成为动态磁盘

然后用WinHex查看硬盘的MBR扇区,发现分区表中多出一个分区表项,其他结构没有变化,如图4-121所示。

动态磁盘的实例分析-数据恢复迷

图4-121 转换到动态磁盘的MBR扇区

这个分区表项就是LDM为硬盘创建的一个MS-DOS的分区表项,其分区类型为“42H”,表示该分区为动态分区。该分区表项只是一个象征性的分区表项,并没有起到管理分区的作用,因为还没有对该硬盘进行分区。

第3步 创建动态磁盘卷

硬盘转换为动态磁盘后,就可以创建动态磁盘卷了,在图4-120中的“未指派”区域内单击鼠标右键,就出现“新建卷”菜单,如图4-122所示。

动态磁盘的实例分析-数据恢复迷

图4-122 新建卷

单击“新建卷”后出现一个向导,如图4-123所示。

动态磁盘的实例分析-数据恢复迷

图4-123 新建卷向导

单击“下一步”按钮,就可以选择需要创建的卷类型了,如图4-124所示。

动态磁盘的实例分析-数据恢复迷

图4-124 选择卷类型

因为是在Windows XP Professional系统下创建动态卷,所以只能支持简单卷、跨区卷和带区卷,不能支持镜像卷和RAID-5卷。而目前只有一个动态磁盘,所以只能创建“简单卷”,跨区卷和带区卷不能创建。

选中“简单卷”后单击“下一步”按钮,出现如图4-125所示的对话框。

动态磁盘的实例分析-数据恢复迷

图4-125 选择磁盘

选中“磁盘1”并单击“添加”按钮,就可以设置简单卷的大小了,如图4-126所示。

动态磁盘的实例分析-数据恢复迷

图4-126 设置卷大小

此处默认大小为动态磁盘的总大小,将其修改为一半大小,即2000MB,然后单击“下一步”按钮,出现分配盘符的对话框,如图4-127所示。

动态磁盘的实例分析-数据恢复迷

图4-127 分配盘符

为其分配盘符“H”,然后单击“下一步”按钮,出现了“卷区格式化”选项,如图4-128所示。

动态磁盘的实例分析-数据恢复迷

图4-128 “卷区格式化”选项

选择“按下列设置格式化这个卷”,文件系统选择NTFS,并在“执行快速格式化”前打钩,然后单击“下一步”按钮,“新建卷向导”即将完成,并列出卷的基本信息,如图4-129所示。

动态磁盘的实例分析-数据恢复迷

图4-129 卷的基本信息

单击“完成”按钮,一个大小为1.95GB的简单卷将被创建出来,盘符为“H”,如图4-130所示。

动态磁盘的实例分析-数据恢复迷

图4-130 1.95GB的简单卷创建成功

简单卷创建好了,下面可以分析该卷的私有头以及LDM数据库的各部分结构了。

私有头结构分析

该动态磁盘的6号扇区为私有头,用WinHex打开该扇区,其内容如图4-131所示。

动态磁盘的实例分析-数据恢复迷

图4-131 私有头扇区

该私有头的具体结构参数如图4-132所示。

动态磁盘的实例分析-数据恢复迷

图4-132 私有头结构参数

提示:私有头扇区中数据存储的字节序是Big-Endian。

对图4-132圈中的几个重要参数作进一步讲解。

①私有头标志。私有头扇区的前八个字节为固定值“PRIVHEAD”,作为私有头扇区的标志。

②私有头第一备份地址。私有头扇区在LDM数据库中有两个备份,这里描述了第一个备份的扇区号。当前值为2047,是指LDM的最后一个扇区。

③私有头第二备份地址。这是私有头扇区在LDM数据库中的第二个备份的扇区号。当前值为1856,该扇区号是以LDM的开始扇区为0扇区计算的。

④磁盘组名。磁盘组的名称由Dg0和计算机的名字一起组成。当前名称为“LiuweiDg0”,意味着计算机的名字是“Liuwei”。

⑤逻辑磁盘起始地址。该值也就是动态磁盘MBR中类型为42H的分区表项所描述的分区开始扇区号。

⑥逻辑磁盘大小。该值也就是动态磁盘MBR中类型为42H的分区表项所描述的分区总扇区数减去LDM数据库占用的2048个扇区的结果。

⑦LDM数据库的起始地址。该值是LDM数据库在动态磁盘中的开始扇区号。

⑧LDM数据库的大小。这是指LDM数据库占用的扇区总数,一般为1M,即2048个扇区。

⑨配置信息大小。这是指VBLK所占的扇区数,一般为1481个扇区。

⑩日志大小。这是指KLOG所占的扇区数,一般为224个扇区。

目录表(TOCBLOCK)的结构分析

目录表(TOCBLOCK)开始于LDM的第二个扇区。用WinHex打开该扇区,其内容如图4-133所示。

动态磁盘的实例分析-数据恢复迷

图4-133 目录表(TOCBLOCK)扇区

目录表(TOCBLOCK)的结构参数如图4-134所示。

动态磁盘的实例分析-数据恢复迷

图4-134 目录表(TOCBLOCK)的结构参数

对图4-134圈中的几个重要参数作进一步讲解。

①TOC头标志。目录表扇区的前8个字节为固定值“TOCBLOCK”,作为目录表扇区的标志。

②位图名1。这个参数指明位图名1的名称。当前值为“config”,说明位图名1是配置信息的位图。

③位图1起始地址。上一个参数说明了位图1是配置信息的位图,所以该参数就描述配置信息位图的起始扇区。当前值为17,说明配置信息的位图开始于LDM的17号扇区。

④位图1大小。位图1是配置信息的位图,所以该参数就描述配置信息位图的总扇区数。当前值为1481,说明配置信息占用1481个扇区。

⑤位图名2。这个参数指明位图名2的名称。当前值为“log”,说明位图名2是日志的位图。

⑥位图2起始地址。上一个参数说明了位图2是日志的位图,所以该参数就描述日志位图的起始扇区。当前值为1498,说明日志的位图开始于LDM的1498号扇区。

⑦位图2大小。位图2是日志的位图,所以该参数就描述日志位图的总扇区数。当前值为224,说明日志占用224个扇区。

数据库配置信息(VMDB)的结构分析

数据库配置信息(VMDB)起始于LDM的17号扇区,占用1个扇区。用WinHex打开该扇区,其内容如图4-135所示。

动态磁盘的实例分析-数据恢复迷

图4-135 数据库配置信息(VMDB)扇区

VMDB扇区中存放关于动态磁盘的总体信息,其结构参数如图4-136所示。

动态磁盘的实例分析-数据恢复迷

图4-136 数据库配置信息(VMDB)的结构参数

对图4-136圈中的几个重要参数作进一步讲解。

①VMDB头标志。数据库配置信息扇区的前四个字节为固定值“VMDB”,作为数据库配置信息扇区的标志。

②VBLK的个数。这个参数指明数据库配置记录中的记录个数。当前值为 5924,说明数据库配置记录中一共有5924条记录。

③VBLK的大小。这个参数指明数据库配置记录中的每个记录的大小。当前值为128,说明数据库配置记录中每条记录长度为128字节。

④VMDB头大小。这个参数说明数据库配置信息扇区的大小,单位为字节。当前值为512,说明数据库配置信息占用1个扇区。

⑤卷、组件、分区和磁盘提交的VBLKs数量。

这些参数指明了卷、组件、分区和磁盘分别占用的VBLK数量,当前值都为1。

数据库配置记录(VBLK)的结构分析

数据库配置记录(VBLK)起始于VMDB的下一个扇区,也就是LDM的18号扇区。当前数据库配置记录中一共有五条VBLK,分别是卷的VBLK、磁盘组的VBLK、磁盘的VBLK、组件的VBLK、分区的VBLK,共占了两个扇区。用WinHex打开这两个扇区,内容如图4-137和4-138所示。

动态磁盘的实例分析-数据恢复迷

图4-137 数据库配置记录(VBLK)扇区1

动态磁盘的实例分析-数据恢复迷

图4-138 数据库配置记录(VBLK)扇区2

磁盘组的VBLK分析

磁盘组的VBLK如图4-139所示。

动态磁盘的实例分析-数据恢复迷

图4-139 磁盘组的VBLK

磁盘组的VBLK结构参数如图4-140所示。

动态磁盘的实例分析-数据恢复迷

图4-140 磁盘组的VBLK结构参数

对图4-140圈中的几个重要参数作进一步讲解。

①VBLK头标志。数据库配置记录的前四个字节为固定值“VBLK”,作为每条记录的开始标志。

②序列号。这个参数指明数据库配置记录的顺序号,该顺序号从4开始编排。当前值为5,说明该记录为第二条记录。

③记录类型和标志。这个参数指明该记录是哪一种类型的记录。当前值为35H,说明该记录是磁盘组的VBLK。

④对象ID。这是给磁盘组分配的身份代号。当前值为1025,说明当前系统下的磁盘组代号为1025。

⑤名称。这是指磁盘组的名称,其格式由计算机名加上“Dg0”组成。当前值为“LiuweiDg0”,说明该计算机名称为“Liuwei”。

⑥磁盘组ID。这是磁盘组的全局ID。当前值为f05a46c7-07b5-46a2-9d49-c5af62630e91。

磁盘的VBLK分析

磁盘的VBLK如图4-141所示。

动态磁盘的实例分析-数据恢复迷

图4-141 磁盘的VBLK

磁盘的VBLK结构参数如图4-142所示。

动态磁盘的实例分析-数据恢复迷

图4-142 磁盘的VBLK结构参数

对图4-142圈中的几个重要参数作进一步讲解。

①VBLK头标志。数据库配置记录的前四个字节为固定值“VBLK”,作为每条记录的开始标志。

②序列号。这个参数指明数据库配置记录的顺序号,该顺序号从4开始编排。当前值为7,说明该记录为第四条记录。

③记录类型和标志。这个参数指明该记录是哪一种类型的记录。当前值为34H,说明该记录是磁盘的VBLK。

④对象ID。这是给磁盘分配的身份代号。当前值为1027,说明当前磁盘的代号为1027。

⑤名称。这是指磁盘的名称。当前值为“Disk1”,说明这是第一块动态磁盘。

⑥磁盘ID。这是磁盘的全局ID。当前值为eab5b8cd-7709-4694-8d85-d22ccf7f1cc9。

分区的VBLK分析

分区的VBLK如图4-143所示。

动态磁盘的实例分析-数据恢复迷

图4-143 分区的VBLK

分区的VBLK结构参数如图1-44所示。

动态磁盘的实例分析-数据恢复迷

图4-144 分区的VBLK结构参数

对图4-144圈中的几个重要参数作进一步讲解:

①VBLK头标志。数据库配置记录的前四个字节为固定值“VBLK”,作为每条记录的开始标志。

②序列号。这个参数指明数据库配置记录的顺序号,该顺序号从4开始编排。当前值为9,说明该记录为第六条记录。

③记录类型和标志。这个参数指明该记录是哪一种类型的记录。当前值为33H,说明该记录是分区的VBLK。

④对象ID。这是给分区分配的身份代号。当前值为1037,说明当前分区的代号为1037。

⑤名称。这是指分区分配的名称。当前值为“Disk1-01”,说明这是第一块动态磁盘上的第一个分区。

⑥起始位置。这是当前分区在动态磁盘逻辑盘中的起始扇区号。当前值为0,说明该分区起始于逻辑盘的第一个扇区。

⑦大小。这是当前分区的总扇区数。当前值为4 096 000,说明该分区大小为4 096 000个扇区,也就是2000MB。

⑧父对象ID(组件)。这个参数指明该记录父对象的ID号,该记录是分区的记录,分区的父对象是组件。当前值为1035,说明ID号为1035的组件是该分区的父对象。

⑨磁盘对象ID。这个参数指明该分区所在磁盘的ID号。当前值为1027,而磁盘1的ID为1027,说明该分区归属于磁盘1。

卷的VBLK分析

卷的VBLK如图4-145所示。

动态磁盘的实例分析-数据恢复迷

图4-145 卷的VBLK

卷的VBLK结构参数如图4-146所示。

动态磁盘的实例分析-数据恢复迷

图4-146 卷的VBLK结构参数

对图4-146圈中的几个重要参数作进一步讲解。

①VBLK头标志。数据库配置记录的前四个字节为固定值“VBLK”,作为每条记录的开始标志。

②序列号。这个参数指明数据库配置记录的顺序号,该顺序号从4开始编排。当前值为10,说明该记录为第七条记录。

③记录类型和标志。这个参数指明该记录是哪一种类型的记录。当前值为51H,说明该记录是卷的VBLK。

④对象ID。这是给卷分配的身份代号。当前值为1033,说明当前卷的代号为1033。

⑤名称。这是给卷分配的名称。当前值为“Volume1”,说明这是第一个卷。

⑥卷类型。这是描述当前卷类型的参数。当前值为3,说明该卷是一个普通卷,而不是RAID卷。

⑦大小。这是当前卷的总扇区数。当前值为4 096 000,说明该卷大小为4 096 000个扇区,也就是2000MB。

⑧分区类型。这个参数指明该卷使用的文件系统类型。当前值为07H,说明该卷为NTFS文件系统。

⑨卷GUID。这个参数指明该卷的全局ID。当前值为23 FC 18 EB E5 1B 4F CE 8F 8E 47 5A 74 DD 33 E5。

⑩ID1(驱动器号)。这个参数指明给该卷分配的驱动器号,也就是盘符。当前值为“H:”,说明该卷的盘符为“H:”。

组件的VBLK分析

组件的VBLK如图4-147所示。

动态磁盘的实例分析-数据恢复迷

图4-147 组件的VBLK

组件的VBLK结构参数如图4-148所示。

对图4-148圈中的几个重要参数作进一步讲解。

动态磁盘的实例分析-数据恢复迷

图4-148 组件的VBLK结构参数

①VBLK头标志。数据库配置记录的前四个字节为固定值“VBLK”,作为每条记录的开始标志。

②序列号。这个参数指明数据库配置记录的顺序号,该顺序号从4开始编排。当前值为11,说明该记录为第八条记录。

③记录类型和标志。这个参数指明该记录是哪一种类型的记录。当前值为32H,说明该记录是组件的VBLK。

④对象ID。这是给组件分配的身份代号。当前值为1035,说明当前组件的代号为1035。

⑤名称。这是给组件分配的名称。当前值为“Volume1-01”,说明这是卷1中的第一个组件。

⑥父ID(卷)。这个参数指明该记录父对象的ID号,该记录是组件的记录,组件的父对象是卷。当前值为1033,说明ID号为1033的卷是该组件的父对象。

结论

通过对磁盘组、磁盘、分区、卷、组件的VBLK分析,可以得到如下结论:

①当前系统下有一个动态磁盘卷,盘符为H,大小为4 096 000扇区,卷名为Volume1,其对象ID为1033,是一个普通卷(简单卷)。

②盘符为H的卷包含一个组件,该组件名称为Volume1-01,对象ID为1035。

③组件Volume1-01由一个分区构成,该分区名称为Disk1-01,对象ID为1037,位于磁盘1上,分区的开始位置在逻辑磁盘的0扇区,大小为4 096 000扇区。

④磁盘1的名称为Disk1,对象ID为1027。