大家对VHD的认识应该主要来源于微软虚拟机VPC,这是VPC所支持的文件格式。在Windows 7中微软将其作为系统的内置文件即虚拟磁盘文件,并且对其提供了很好的支持。在Windows 7中,用户不仅可创建VHD文件,而且可挂载已有的VHD文件。还有一项很特别的功能是,可以从VHD文件启动系统。下面笔者结合实例对VHD文件进行解析。
1、创建VHD文件
依次点击“开始”→“运行”,输入diskmgmt.msc可打开磁盘管理器。在磁盘管理器中执行“操作”→“创建 VHD”弹出创建和附加虚拟磁盘向导对话框。分别输入虚拟磁盘文件的保存位置(本例为D:\test1.vhd),虚拟磁盘大小(本例为10MB,我们可以根据需要更改单位为MB/GB/TB),勾选“Fixed size”设置虚拟磁盘使用固定的空间大小,当然也可点选“Dynamically expanding”根据保存的数据动态调节大小。设置完成后点击“确定”则系统自动完成虚拟磁盘的创建。(图1)
利用diskmgmt.msc(磁盘管理器)创建VHD
创建完成后就会磁盘管理器中出现一个新的磁盘驱动器,此时的虚拟磁盘还不能使用,还需进一步的设置操作。右键单击该驱动器(本例为磁盘1)选择“初始化磁盘”弹出初始化向导,默认点选“MBR(主启动记录)”然后“确定”完成磁盘的初始化工作。(图2)
磁盘初始化完毕后,我们就可对该磁盘进行分配了。在磁盘管理器中右键单击未分配磁盘图示区域选择“新建简单卷”弹出新建简单卷向导,依据向导分别设置简单卷的大小、驱动器号、文件系统格式,完成简单卷的创建。然后我们就可以通过资源管理器访问,单击进入相应的分区访问该虚拟磁盘了。(图3)
为VHD(虚拟磁盘)创建简单卷
2、VHD的脱机和分离
不同于真正的的物理磁盘,对于虚拟磁盘我们还可以根据需要进行脱机和分离操作。在磁盘管理器中右键单击虚拟磁盘图标选择“脱机”可完成脱机操作,脱机操作完成后该虚拟磁盘在磁盘管理器中是存在的,但在资源管理器中不可见因而是无法访问的。其实脱机操作在实战中是非常有用的,我们可将重要文件保存到该虚拟磁盘中然后将其脱机,这样可以达到保护文件的目的。与“脱机”对应的是“联机”,同样的右键单击磁盘管理器中的虚拟磁盘图标选择“联机”即可在资源管理器中进行访问。(图4)
VHD(虚拟磁盘)的联机与脱机
虚拟磁盘的分离是将该虚拟磁盘从磁盘管理器中剔除,从而在资源管理器中消失。在磁盘管理器中选中虚拟磁盘图标右键单击选择“分离 VHD”弹出分离虚拟硬盘向导,如果你勾选“删除磁盘后删除虚拟硬盘文件”则整个虚拟磁盘将会被彻底删除,保存在上面的文件当有也不复存在了。(图5)
3、挂接VHD文件
我们知道在linux/Unix中可通过mount命令来挂接驱动器,同样在Windows 7中我们也可将现有的VHD文件挂接到磁盘管理器中,从而可从资源管理器中访问,完全用不着第三方虚拟软件。要将VHD文件文件挂接为系统的某个磁盘分区,首先要确认VHD文件的路径。Windows 7支持本地VHD文件的挂接,也可挂接局域网内其他主机上的VHD文件。我们以挂接本地VPC创建的Windows Server 2008 core的VHD文件为例进行演示,看看其中包含的文件。
在磁盘管理器中执行“操作”→“附件 VHD”弹出附加虚拟硬盘向导,输入VHD文件路径或者通过“浏览”定位并选择目标VHD文件,为了防止多目标文件的破坏我们勾选“Read-only”(只读)。根据VHD文件的大小,系统会耗费一定的时间完成VHD文件的挂接。文件挂接完成后,不需要进一步的操作,在磁盘管理器中可以看到挂接成功(磁盘2)并自动为其分配驱动器号,通过资源管理器可进行访问。(图6)
VHD(虚拟磁盘)文件的挂接
4、VHD文件启动系统
Windows 7对VHD文件的支持为我们提供了一种新的系统引导方式,我们可以从虚拟磁盘启动系统!其基本原理是:用VPC生成一个可正常启动的系统VHD文件(比如上面的Windows Server 2008 core的VHD文件),然后将该VHD文件挂接为系统的一个磁盘分区,最后通过bcdedit命令手工或者编写脚本添加启动项,使得用户可选择从虚拟磁盘系统系统。这个已经有人做了测试笔者就不演示了。
对VHD的支持是Windows 7的一项新功能,在实战中还是比较实用的。其实,除了上面的应用实例外,只要大家善用挖掘它还可以帮我们做很多事情。