前言:
从Windows7(NT6.1)开始,微软已经实现可以把NT6.1(如Windows7/2008R2)及以后的操作系统安装在"裸盘"里的VHD虚拟磁盘中并原生引导,这样我们在安装多个系统时不需要装在不同的分区中;干净、简洁,可移植性强从此开始。从Windows8(NT6.2)开始,又引入了VHD虚拟磁盘的改进版——VHDX虚拟磁盘。
在这里首先要说明的是NT6.1(如Windows7/2008R2)自带的BCD只可以把NT6.1及以后的操作系统装在"裸盘"里的VHD虚拟磁盘中并原生引导;NT6.2(如Windows8/2012)自带的BCD可以把NT6.1及以后的操作系统装在"裸盘"里的VHD/VHDX虚拟磁盘中并原生引导;这里推荐都把相关操作系统安装在VHDX虚拟磁盘中并原生引导,因为VHDX格式除了支持更大的空间(64TB),还有更好的断电故障修复恢复功能——也就是说即使意外断电等,也不用担心装在VHDX虚拟磁盘中的文件损坏或丢失。
正文:
但本文以Windows7为例说明如何将操作系统装在"裸盘"里的VHD虚拟磁盘中并原生引导,至于用Windows8的引导来安装相关操作系统安装在VHDX虚拟磁盘中并原生引导,则仅仅是在实践中一般只是一个字母的差别,会在过程中给予说明。
1、如下图1所示,用Windows 7安装光盘,可引导USB设备(推荐到微软官方网站下载Windows7系统,Windows7-USB-DVD-tool并制作成含有Windows7的启动U盘;同理,要安装Windows8等,必须是制作成含有Windows8的启动U盘——正确的废话啊!)启动裸机、进入图形界面的安装Windows后,按下Shift+F10,调出CMD菜单。
(图1,调出分区命令行菜单)
2、分别执行如下命令:
diskpart //进入磁盘管理平台//
list disk //查看已挂载物理磁盘//
select disk 0 //选择一个磁盘//
create part pri //创建一个主分区。在这个示范中我将整个的磁盘创建为一个主分区,您也可以添加相应的参数来创建一个指定大小的主分区//
format fs=ntfs quick //来使用NTFS格式来快速格式化这个分区//
List vol //列出现有的分区,这时可以看到刚刚创建的主分区,也可以用list part来查看分区//
assign //来为新创建的分区指定一个驱动器号,默认为C。如果有懒人用PE启动并格式化硬盘后,则只需要1-3命令,不需要后面的4-7命令//
create vdisk file=c:\win7.vhd maximum=9000 type=fixed //创建一个c:\win7.vhd的文件,大小为9000MB,类型为固定大小;这里可以自定义文件最终大小或用expandable替代fixed来创建一个动态扩展的VHD磁盘,但建议用固定的,因为动态扩展时效率稍低。同样的废话,如果要用NT6.2的BCD来引导VHDX,则file=c:\win7.vhd 为file=c:\win7.vhdx,仅一字母之差啊//
select vdisk file=c:\win7.vhd //将焦点集中到vhd或vhdx文件,多个vdisk时使用,此处第一次安装可以省略//
attach vdisk //挂载选中的vhd或vhdx文件文件//
(图2,创建vdisk)
3、直接关闭或两次exit命令退出diskpart,继续进入图形界面,选择“安装”和“自定义(高级)”,然后可以看到已挂载刚才创建的VHD磁盘,这时候可以选中VHD磁盘,再选择“高级”,进一步对区分区、划分分区大小等,如下图3所示。
(图3,选择VHD磁盘和进一步的操作)
4、然后是常见的操作系统安装过程,安装完后系统自动在原物理磁盘上生成能支持引导VHD/VHDX磁盘的BOOTMGR.SYS文件和BOOT文件夹。此文不再说明。
5、如果还要安装第二个系统在VHD磁盘上,可以继续上述2中的1-3命令即可,但有以下两点需注意:
步骤2中要有select vdisk file=c:\X.vhd //将焦点集中刚创建的X文件,有多个vdisk时使用//
步骤3图形界面中也要选择对应的Vdisk来编辑和安装
最佳实践简单总结:
建议用NT6.2(如Windows8/2012)自带的BCD可以把NT6.1及以后的操作系统装在"裸盘"(建议用PE启动并分区格式化好硬盘)里的VHDX虚拟磁盘中并原生引导;主要有以下几个命令:
diskpart
list disk
select disk 0
create vdisk file=c:\X.vhdx maximum=9000 type=fixed(或expandable)
select vdisk file=c:\X.vhdx
attach vdisk
随后就进入图形界面操作,以上方法安装,系统会自动部署bootmgr和BCD,并在BCD中添加每个VHDX系统的引导菜单,无需人工干预和设置,通常推荐这种方法,所以笔者多个系统的安装顺序是Win8 ——〉Win7/Win2008R2/Win2012/Linux等。
附录:
也可以用一台已安装Window7/8的操作系统来创建一个VHD/VHDX磁盘,格式化并设置为主活动分区,然后挂载该VHD/VHDX磁盘并向里面“释放”操作系统镜像文件,完成后通过USB设备或网络等把该VHD/VHDX拷贝到目标裸盘里,同时复制已经设置好的BOOTMGR.SYS文件和BOOT文件夹到目标裸盘根目录(相关操作见后面描述)。如下图4所示。
(图4,Windows8中创建一个VHD/VHDX磁盘)
整个过程用到微软的Imagex(释放操作系统镜像文件到VHD/VHDX磁盘用)和bcdedit(编辑bcd文件实现bootmgr引导VHD的工具),主要操作命令请自行参考:
p_w_picpathx /? //显示帮助//
p_w_picpathx /apply X:\sources/install.wim 1 d: //释放x盘里的windows7/8操作系统镜像文件到d盘(VHD盘)//
bcdedit /? //显示帮助//
下面介绍用第三方工具来实现,但要注意目前这两个工具所包含的工具只支持VHD和NT6.1版的BCD。如下图5所示。
(图5,创建VHD/VHDX和释放系统镜像文件,向BCD中添加引导)
对于修改bcd文件方面,我们觉得微软的命令行工具bcdedit太麻烦,可以用第三方工具来修改创建,如下图6所示,向目标位置部署一套bcd。
(图6,向目标位置部署一套bcd)
然后再选择刚才部署的BCD,对其进行编辑,提示不会对当前工作机器上的BCD产生变更。如下图7所示。
(图7,选择刚才部署的目标bcd)
编辑空白目标bcd,添加新条目,选择类型,引导菜单显示名,VHD路径等。最后写入。如下图8所示。
(图8,编辑目标bcd,写入预启动的VHD)
最后,完成后通过USB设备或网络等把该VHD拷贝到目标裸盘里,同时复制刚才部署并设置好的BOOTMGR.SYS文件和BOOT文件夹到目标裸盘根目录即可。
7、针对大型企业的批量部署,建议采用MDT(Microsoft Deployment Toolkit,微软部署工具)来制作集成企业自用软件,office等的操作系统镜像,然后再批量部署客户端或服务器。还可以搭建Windows 2008 R2下的WDS(Windows Deployment Services)服务来实现。具体内容,参看如下网址:
http://technet.microsoft.com/en-us/library/ee376932.aspx
http://technet.microsoft.com/zh-cn/library/cc772106(WS.10).aspx
Windows VHD辅助工具和EasyBCD个人版(共享失败,请自行搜索下载)请猛击名称下载(仅提供下载,版权归原作者或原公司所有)。