用 VHD 灌装 Windows

08.16.2012, Librarys, by , 754 views.

微软的VHD文件格式是一种虚拟机硬盘(virtual machine hard disk), 并可以被压缩成单个文件存放在宿主机器的文件系统上,主要包括虚拟机启动所需系统文件。

Windows 7企业版及旗舰版支援虚拟硬盘(VHD)档案格式。VHD档案可以当作驱动器加载、创建和启动,如同WIM档案的方式。此外,安装的Windows 7可以从VHD驱动器启动或执行,提供了Windows多种启动方式。

玩过虚拟机软件的人都知道这个 VHD 虚拟硬盘格式。Win7 对 VHD 驱动器启动的支持让装多系统变得简单,根本不用为分区烦恼,一个系统就一个vhd镜像,蹦了用备份的一份替换即可,就像用虚拟机一样。

我们希望尝试新系统,每安装一个系统,我们就得把系统安装到一个系统分区,使用VHD就简单了,我们安装几个系统,比如安装 Win 7 和 Win 8,我们只需要在硬盘上创建两个VHD文件,将系统分别灌入,修改启动项即可完成。

基础文件: 一张 Win7 安装DVD 光盘,Windows AIK 的 imagex 工具。

将安装光盘放进 光驱,然后在 BIOS 设置从光盘启动。

为 C: 盘设置引导记录:

bootsect /nt60 c: /mbr

复制启动文件到 C 盘:

bcdboot v:windows /s c: /l zh-CN

首先创建一个 VHD 虚拟硬盘镜像,按 Shift + F10 打开 命令行提示符,敲入一下命令:

diskpart
list disk
select disk 0     [选择磁盘 0]
list partition
create vdisk file=E:windows7.vhd maximum=20583 type=fixed     [创建 VHD 固定的20G容量]
select vdisk file=E:windows7.vhd     [打开这个虚拟磁盘]
attach vdisk     [激活虚拟磁盘]
create partition primary     [建立主分区]
list partition     [查看分区列表]
select partition 1     [选择建立的主分区]
active     [激活分区]
format fs=ntfs quick     [快速格式化]
assign letter= v     [将这个虚拟磁盘命名 v盘]
exit     [推出 diskpart]

方括号”[]”内的是命令的说明,不要敲入。

敲入完毕后就创建了一个 20GB 的虚拟硬盘镜像,而且这个镜像已经挂载到 V: 盘上了。

然后就是用 imagex 工具把 Win7 的安装文件 install.wim 给解压到 V: 里面了,命令:

imagex.exe /apply install.wim 1 v:

等写入完毕后就可以创建 bcdboot 的引导记录了。

创建 bcdboot 的引导记录的过程如下:

先建立获取一个用于引导 VHD的 GUID 号,假如 bcd 文件在 c:boot 下那么就要进入这个目录然后再进行下面的操作。

bcdedit /store .bcd /create -d "VHDBoot" /application osloader

这个命令执行后会获得一个 格式为类似这样的字符串:

{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}

这个字符串就是 GUID,然后把你获得的 GUID 替换小下面命令中的 “{guid}” ,并且敲入这些命令:

bcdedit /store .bcd /set {guid} device vhd=[E:]win7u.vhd
bcdedit /store .bcd /set {guid} osdevice vhd=[E:]win7u.vhd
bcdedit /store .bcd /set {guid} path windowssystem32winload.exe
bcdedit /store .bcd /set {guid} systemroot windows
bcdedit /store .bcd /set {guid} locale zh-CN
bcdedit /store .bcd /set {guid} nx optin
bcdedit /store .bcd /set {guid} detecthal yes
bcdedit /store .bcd /set {guid} Description "Windows 7 VHD"
bcdedit /store .bcd /displayorder {guid} /addlast

这样就建立好 bcdboot 的引导菜单了。

这样可以把 Win8 和 Win7 旗舰版用 VHD 镜像来启动了。

不过 bcdboot 命令也可以在bcd 菜单里面建立启动条目。

比如 vhd 已经挂载的盘符为 V: 盘,C: 为现在又系统的按照位置。一般都是 C:。那么敲入下面的命令就可以了:

bcdboot v:windows /s c:

这名命令的缺点是产生的菜单是自动生成的,执行后要自己改菜单的显示名字。要是你担心会丢失什么参数那就用这个命令吧。

这个方法 Win8 下面也可以使用,只是这几个命令的程序版本要用 Win8 的版本了。