来认识一下VHD是什么东东~~
深入认识VHD 展示应用新天地


新的操作系统Windows 7将原生态支持VHD文件。那么,什么是VHD文件?它将给我们带来什么便利呢?本文将针对这些问题进行比较详细的讨论。

并不陌生的VHD
别以为VHD来自火星,早在几年前,它就闯入我们的视野了。使用VPC就免不了与它打交道,用过Vista的也一定见过VHD

VPC创建VHD
其实,VHD文件并不陌生,VPC也能创建VHD文件,而VPC的元老版本可追溯到2003年。

VPCMicrosoft Virtual PC,该软件的元老级版出现于2003年,是微软出品的一款免费虚拟电脑软件。比如,让它在Windows XP(称之为宿主)下运行,可创建出多台虚拟电脑。操作虚拟电脑的方法与真实电脑类似,可启动或关闭、进行BIOS设置硬盘分区(当然是虚拟的),然后在虚拟电脑上安装操作系统或应用软件。虚拟电脑主要用于教学培训、测试新操作系统或软件。

比如用VPC创建一个名为VXP的虚拟电脑,那么,可在虚拟电脑的保存位置查看到名为VXP Hard Disk.vhd的文件。

在宿主机下,观察到的虚拟电脑是一个VHD文件,但在虚拟电脑中,它却是虚拟的硬盘或分区,在虚拟的分区上可安装操作系统或应用软件。

Vista创建VHD
VistaWindows 7也行)下,依次打开控制面板|“系统和安全|“备份和还原|“创建系统映像,可将一个分区进行备份,同样能生成VHD文件。

VistaWindows 7也行)下,观察到的仍然是VHD文件,但还原后就是一个分区下的所有文件。

总结起来,VHD文件可虚拟为硬盘或分区,而虚拟的硬盘或分区中可安装操作系统或存放其它文件。

Windows 7VHD的原生态支持
Windows 7下可很方便地创建VHD,也可将VHD加载为虚拟硬盘,当然也可将虚拟硬盘卸载而还原为VHD,它们之间的变化也是双向的。这些操作可在磁盘管理器下进行,也可通过命令提示符来完成。本节,我们将重点介绍前一方法,后一方法请参考本文的虚拟安装Windows 7部分。

创建VHD
1步:在开始菜单下右击计算机,选择管理|“磁盘管理。接着,从打开的窗口中单击操作下的创建VHD”,创建向导即可自动运行。

2步:单击浏览,指定VHD文件的存放位置及文件名。接着,在虚拟硬盘大小后指定VHD文件的大小。然后,在虚拟硬盘格式下选择动态扩展固定大小,最后单击确定即可。完成后可在我们前面指定的位置观察到VHD文件。

小提示:后面,我们还要将VHD文件虚拟为硬盘,可用虚拟硬盘来存放文件。选择动态扩展后,VHD文件的大小由虚拟硬盘中存放的文件大小决定;如果选择固定大小,那么,不管是否向虚拟硬拷贝了文件,也不管拷贝到多少,VHD文件的大小都将保持不变。但要注意的是,不管选择哪种格式,虚拟硬盘中能存放的文件都不能超过指定的大小。

VHD虚拟为硬盘
通常,我们也称这一过程为将VHD文件虚拟为硬盘。



在磁盘管理器下,单击操作|“附加VHD”,再到已创建的VHD文件即可。为保证加载后的虚拟硬盘能安装系统或存放其它文件,请不要在加载过程中勾选只读。完成后,可在硬盘管理器下观察到,如图1所示,其中,磁盘3、磁盘4都是通过VHD虚拟而得。要注意的是,硬盘4上标有没有初始化未分配字样,不能在计算机(相当于Windows XP我的电脑)下观察到。对比来看,硬盘3已初始化,可在计算机下观察到,而且,从图1还可看出,磁盘3下有多个分区,而且Windows 7已为它们分配了分区的盘符,比如JK等。

初始化虚拟硬盘
虚拟硬盘必须经过初始化才能使用,就像将普通硬盘的数据线、电源线连接到电脑的主板一样。

右击状态显示为没有初始化的磁盘,选择初始化磁盘,再在下一步中选择MBR(主引导记录)并单击确定。完成后,虚拟磁盘的状态信息将自动显示为联机

对虚拟磁盘进行分区
右击要进行分区的虚拟磁盘,选择创建简单卷并单击下一步,分区向导会提示我们输入分区的大小,默认值为VHD文件的最大值。如果选择此值,虚拟磁盘只能分为一个分区。如果手动指定大小,还可将虚拟磁盘分为多分区。在整个过程中,向导还会提示我们是否对新建的分区进行格式化操作,格式化完成后,可在磁盘管理器下看到系统自动为每一分区分配的盘符。同时,打开计算机,即可像操作普通硬盘一样操作虚拟的分区了。

卸载虚拟磁盘
右击虚拟磁盘,选择分离VHD”,按提示操作即可。在卸载的过程中,如果选择了删除磁盘后删除虚拟硬盘文件,那么,我们向虚拟磁盘分区中写入的文件将全部消失。

至此,在磁盘管理器下对VHD的基本操作就全部完成了。

VHD的应用
VHD的应用比较广,下面略举两例说明它在个人电脑上的应用。

虚拟安装Windows 7
假设电脑上已安装了Windows XP,现在用Windows 7安装光盘启动电脑,将Windows 7安装到电脑的一个VHD文件之中,完成后,仍然可形成包含Windows XPWindows 7的多系统。等大家看了完成后的效果,自然就能体会这种多系统的好处了。




要注意的是,我们在此是将Windows 7安装到由VHD文件虚拟出来的分区之中。

安装方法
在这一安装中,将要用到命令提示符工具,如果对此不是很了解,请尽量原样输入。

1步:准备。让电脑的D盘有30GB左右的空闲空间。

2步:创建VHD。关机后用Windows 7安装光盘启动电脑,当安装向导运行到选择语言界面时,按Shift+F10调出命令提示符窗口,如图2所示。

在命令提示符窗口中依次输入以下命令:
命令1diskpart
命令作用:启动分区管理环境。要注意的是,这一命令在Windows XP以后就有了,但是,只有Windows 7的这一命令才支持创建和管理VHD的功能。
命令2list disk
命令作用:列出当前的磁盘。屏幕上显示的Disk 0正是安装于电脑中的真实硬盘。
命令3:Create vdisk file=d:vin7.vhd type=fixed maximum=15000
命令作用:创建一个VHD文件。创建的VHD文件名为Vwin7.vhd,存放于D盘根目录之下。type=fixed表示它的格式为固定大小。maximum=15000表示VHD文件的最大值为15000MB15GB
命令4select vdisk file= d:vwin7.Vhd
命令作用:用刚才创建的vwin7.Vhd来虚拟硬盘。
命令5attach vdisk
命令作用:激活虚拟硬盘。
命令6list disk
命令作用:列出当前的磁盘。在前面,我们也用过这一命令,请比较它们输出结果的不同。此时,除Disk 0外,还有Disk 1,其中,disk 1就是用VHD文件虚拟出来的。
命令7exit
命令作用:退出diskpart环境。




3步:选择安装位置。在图2中单击Next”,让Windows 7的安装继续进行,直到选择安装位置的界面出现,如图3所示。

在此,可观察到两个磁盘,Disk 0就是电脑中的物理硬盘,它的下面有三个分区,前面,我们创建的VHD文件存放位置为第二个分区(即Disk 0 Partition 2,也就是D盘)。

Disk 1即是虚拟硬盘,由于还没有加载,它的状态信息为:Unallocated Space。下面就加载并对其进行分区,具体方法如下:

选中Disk 1后,单击Drive Options(advanced),在一下界面中单击New”。接着,分区向导会要求输入分区的大小,默认为最大值(即15000MB)。如果取此默认值,并单击Apply,那么,整个虚拟硬盘将只划分一个分区,本例即是这样操作的。完成后,安装向导自动返回图3界面,但我们会发现Disk 1后面会出现Partition 1字样,而且其格式(Type)为主分区(Primary)。在此,只要选择Disk 1,再单击Next”,Windows 7的安装即可自动进行,而且安装位置是由VHD虚拟出来的硬盘。

全部安装完成后,重新启动电脑时,会出现操作系统选择的菜单。

优势分析
运行速度快。Windows 7尚处于测试阶段,很多朋友都用VPC等虚拟安装,但VPC安装时,硬件全是虚拟的,由于其显卡无法达到Windows 7的基本要求,无法体验到Windows 7在界面上给我们带来的新体验,更要命的是,VPC对硬件的要求极高,用它安装出来的Windows 7运行十分缓慢。

Windows 7安装到VHD时,Windows 7使用的硬件都是电脑中的物理硬件,包括CPU、内存、显卡、声卡等,与安装到物理硬盘上完全一样,不会因虚拟安装而受到任何影响。

维护方便。将VHD文件复制出来,当Windows 7出错时只要拷贝回去就行了。

疑问解答
操作结果能保存吗?Windows 7虽然是虚拟安装的,但我们在Windows 7下的所有操作结果,包括创建的文件、对系统进行的设置等都能保存下来,关闭Windows 7后,这些结果都存放于VHD文件之中。

还有,Windows XP也有Diskpart命令,能用VHD安装Windows XP吗?答案是否定的。从图2可看出,Windows 7Diskpart版本号为6.1.***,而Windows XPDiskpart版本号为5.1.***。不仅如此,VistaDiskpart版本也不够。Windows XPVistaDiskpart命令都不支持管理VHD的能力。

简单加密私密文件
通过前面的讨论,可能给大家印象最深的是:VHD可加载为虚拟的硬盘分区,可像普通硬盘一样对其进行读写;一旦卸载后就变成普通的VHD文件了,其中的内容不可见。

下面,我们将利用这一特性来隐藏自己的私密文件。

假设电脑的e:MF下有VHD文件,文件名为MF.vhd,且已进行了分区。Windows 7下有两个系统帐号,lxcHlxcL,启动到lxcH后,能自动将MF.VHD加载为虚拟硬盘,启动到lxcL时,不加载。下面是具体操作方法:

1步:在E:MF目录下创建两个文本文件cj.txtde.txt
前一文件的内容如下:
select vdisk file=e:MFMF.Vhd
attach vdisk
exit
后一文件的内容如下:
select vdisk file=e:MFMF.Vhd
detach vdisk
exit

2步:E:MF目录下创建两个批处理文件cj.batde.bat

首先,打开记事本,输入以下内容:
diskpart /s
接着,单击文件下的保存,在弹出对话框的保存类型后选择所有文件(切记,不然就保存为文本文件而不是批处理了),在文件名后输入cj.bat。然后单击保存,批处理cj.bat就创建完成了。

同理,创建另一批处理,另一批处理的内容如下:
diskpart /s

小提示:运行批处理cj.bat时,它会自动启动Diskpart并执行cj.txt中的命令行,即将MF.vhd加载为虚拟硬盘。同理,运行de.bat时,可将已加载的虚拟硬盘卸载。



3步:按Win+R功能键调出运行对话框,输入gpedit.msc”并回车以打开组策略编辑器,在左侧依次展开计算机配置|Windows设置|“脚本(启动/关机)。接着,在右侧双击关机。然后,单击添加|“浏览,将刚才创建的批处理文件de.bat导入进来。如图4所示。
4步:进入以下目录:
D:UserslxcHAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

将批处理文件cj.bat拷贝到该目录之下。完成后,可在开始菜单的启动组下观察到已添加进来的批处理。登录时启动组下的程序会自动运行,这样,只要登录到lxcH用户下,虚拟硬盘就能自动加载。显然,这一批处理不能添加到另一用户即lxcL的启动组之下。

要注意的是其中的D:UserslxcH,表示在我的电脑上,Windows 7安装位置为D盘,lxcH是系统帐户名。
至此,所有操作全部完成。

小提示:关机脚本对任何用户都有效,而启动组的程序只对当前用户有效,这样,启动到lxcH后,虚拟硬盘将自动加载,启动另一用户(即lxcL)时却不能。就算另一用户手动加载VHD,只要一关机,VHD又将自动卸载。如果要彻底拒绝lxcL加载VHD,可在lxcH下对VHD文件进行EFS加密。

VHDVPC的关系
VPCMicrosoft Virtual PC,它是微软出品的虚拟电脑软件,通过它也可创建出VHD文件。下面将简介VHDVPC的关系。

Windows 7下打开由VPC创建的VHD文件
假设我们已用VPC创建了一台名为LS的虚拟电脑,那么,可到名为ls Hard Disk.vhdls.vmc的两个文件。其中,VHD文件体积很大,而VMC文件却非常小。现又假设已在虚拟电脑中安装了操作系统及应用软件。怎样才能在不启动VPC的情况下观察到虚拟电脑中的文件呢?

只要像本文所介绍的那样在exit是什么意思英语Windows 7下将ls Hard Disk.vhd加载为虚拟硬盘,此时,原来在VPC下才能观察到的分区都能在Windows 7下观察到,当然也包括其中的文件。这又有什么用呢?过去,要在真实电脑和虚拟电脑之间交换文件,一般只有三种方法。其一、先安装由VPC提供的专用插件,再进行拷贝。其二、将虚拟电脑和真实电脑构建成局域网。其三、通过VPC设置共享。现在,有了Windows 7,交换文件就更加方便了,至少,多了一种方法。

VPC下打开由Windows 7创建的VHD文件
在此,我们用具体的事例来说明:假设某Windows 7爱好者在试用该系统时创建了一些VHD文件,后来,由于种种原因没有安装Windows 7了。现在要将VHD中的文件拷贝一些出来,难道只有重新安装Windows 7
为方便叙述,假设VHD文件名为test,位于E盘根目录下。




完成这一操作的前提是必须安装了VPC,而且VPC中有一台安装操作系统(本例中,安装的是Windows XP)的虚拟电脑。

1步:运行VPC,在其管理界面上选择已安装的虚拟电脑,单击Settings”,在弹出的对话框中选择Hard Disk 2”。接着,单击Browse…”再到E:test.vhd”即可,如图5所示。

小提示:虚拟电脑中必然有硬盘或分区,它已由创建虚拟电脑时完成,其实,它也是一个VHD文件,可在Hard Disk 1”下观察到它。

2步:运行虚拟电脑VPC,让它启动,完成后可在虚拟电脑下观察到E:test.vhd”虚拟而来的第二硬盘及分区,当然也包括其中的文件,不仅如此,还可在其中添加、修改文件。

借用Windows 7安装光盘查看VHD文件
假设硬盘中已安装了Windows XP,硬盘的D盘里存放有名为LS.VHD的文件,现在借用Windows 7的安装光盘来查看LS.VHD中包含有哪些文件。



1步:用Windows 7安装光盘启动电脑,当Windows 7安装向导运行到语言选择界面时,按Shift+F10键调出命令提示符窗口。如图6所示。

2步:依次输入以下命令:
命令1dir d:*.*
命令作用:确认一下VHD文件是否真的位于D盘根目录。显然,赫然在目。
命令2:Diskpart
命令3list disk
命令作用:查看当前磁盘。在我的电脑上显示出来的是Disk 0,它就是电脑中的真实硬盘。
命令4select vdisk file=d:ls.vhd
命令5Attach vdisk
命令6List disk
命令作用:查看当前磁盘。此时,显示的有disk 0disk 1,与前面的显示相比,多出的Disk 1 就是由d:ls.vhd虚拟出来的硬盘。
命令7exit
命令8notepad
命令作用:Windows 7安装光盘启动电脑时,首先加载的是与Windows 7相对应的Windows PE 2.0,输入这一命令后,记事本程序会自动打开。

也许大家会觉得奇怪,为什么要打开记事本程序?原来,此时的Windows PE 2.0运行于命令提示符之下,就算将VHD文件虚拟而成的硬盘加载了,也只能通过DIR等命令查看其中的文件,或者通过COPY等命令来将其中的文件拷贝到真实硬盘之中,麻烦之大可想而知。记事本程序打开后,只要单击记事本窗口中的file save as”,窗口化的资源管理器即可打开,如图6所示。

在我的电脑上,从图6可看出:CD盘就是真实硬盘的分区(自己的电脑自己最清楚),G盘就是VHD文件虚拟出来的硬盘的分区,双击即可打开它。千万不要忘记我们此时的任务是查看G盘中的文件而不是另存文件。要注意的是,此时能查看到的文件只有文本文件,要查看所有文件,请在Save as type”后选择All files”。能查看到其中的文件,当然就能拷贝到真实硬盘的分区之中。拷贝后,再重新启动电脑即可在Windows XP下处理这些文件。

总结
虽然,VHD文件的提出比较早,但真正的应用还得自Windows 7Windows Server 2008 R2开始。过去,我们都将它应用于虚拟机领域,自这两款操作系统后,还可应用于个人电脑和服务器,比如将Windows PE安装到VHD文件并生成启动菜单,使电脑身兼多职,除正常工作外,还可用于维护,对企业进行多台电脑的部署。更重要地,如果将其应用于服务器,理论上,有多少个VHD文件就相当于有多少台电脑,表面上看,多台客户机访问的是同一台电脑,但访问不同的VHD就意味着访问不同的操作系统、享受不同的服务。不仅切换方便,而且技术人员的维护也变得异常简单,只要管理好VHD文件即可保证被访问对象的健康和安全最简单的方式就是拷贝VHD到其它地方备份一下。总之,抛开虚拟机,VHD也能向我们展示出它的另一番新天地。
本主题由 System 于 2011-1-1 05:00 解除限时高亮

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。