创建虚拟硬盘
利用Oracle VM virtualBox创建一块4M的虚拟硬盘,步骤如下
选择固定大小
选择文件位置与大小
创建完成。
查看文件内容
工具生成一个后缀名为.vhd大小为4MB的文件
用HexView打开,发现文件内容全部被0填充,只有在0X00400000,十进制的 262145行有其它内容
简单分析一下格式
VHD: Microsoft 虚拟化产品中常用的镜像格式是虚拟硬盘 (VHD) 镜像格式
636f 6e65 6374 6978 0000 0002 0001 0000
ffff ffff ffff ffff 2dc3 4fdc 7662 6f78
0006 0000 5769 326b 0000 0000 0040 0000
0000 0000 0040 0000 0078 0411 0000 0002
ffff e7ec e5dc 5215 4050 0042 937d 7908
02ce ab69 0000 0000 0000 0000 0000 0000
固定方式的VHD格式分为两个结构:数据区和尾部。尾部结构共有512字节
-
标识 占8字节。表明是否一个合法的VHD文件,固定写入了“conectix”字符串。
-
特性 占4字节。这个字段说明该文件支持的特定功能,常用特性有:无,临时,保留。无特性表明该文件没有嵌入特定功能;特性为临时,表明这是一个临时的VHD文件,当关机时会被删除;保留特性,这一位始终被设置为1。无:0,临时1,保留:2
-
版本 占4字节,表明VHD的文件格式版本信息。
-
数据偏移占8字节。这个字段以字节存储了从文件开始到下一结构的绝对字节偏移量。该字段保存从文件开头到下一个结构的绝对字节偏移量。该字段只用于动态盘和差异盘,不用于固定盘。对于固定磁盘,该字段应设置为0xFFFFFFFF
-
时间戳占4字节。(图片标错了)存储了文件的创建时间,这是自2000年1月1日0时0分UTC/格林尼治时间以来的秒数。
-
创建者信息占12字节。共有三个字段:创建者(占4字节);应用版本(占4字节),前两字节是主版本号,后两节是小版本号;应用系统(占4字节)。创建者指创建该VHD文件的应用,应用版本是创建文件的应用版本信息;应用系统指出创建VHD文件的平台,如windows.
-
初始长度占8字节,以字节为单位写入了创建时的初始大小。
-
即时长度占8字节。以字节为单位写入了当下VHD文件的大小。对于固定方式的VHD文件,初始长度与即时长度相同。
-
磁盘结构占4字节。描述了硬盘的C/H/S结构参数。目前已很少用到。此字段存储硬盘的磁道,磁头和每磁道的扇区值。
-
类型占4字节。描述VHD文件的类型。其常见类型如: 空:0 ;固定方式:2;动态方式:3;差分方式:4;
-
尾部校验和占4字节。这个字段只检验VHD文件的尾部,检验和是由尾部中除校验和字段的信息计算得到。如果校验和出错,则认定文件损坏。
-
通用唯一识别码占16字节。每一块硬盘都有一个识别码,用来识别硬盘,即128位的通用唯一识别码。
-
标志占1字节。用来表示硬盘是否处于保存状态。如果磁盘处于保存状态,那该字段置为1,不能执行对磁盘的压缩或拓展等动作。
-
保留字段占427字节。