• 以前,虽然听说过这个特性,但一直没有尝试过。
    最近有机会尝试了一下,本以为是很难的东西,但实际操作起来,还是很简单的。

  • 首先,先解释一下什么是 原生 VHD 启动(Native VHD Boot)?

  • 实际上,Win7可以 启动VHD 里面的系统,并且里面的系统知道运行在 VHD磁盘上。

  • 那么VHD是什么? VHD是MS的虚拟硬盘文件,实际上,如果用过VPC,Virtual Server,Hyper-V,Windows Virtual PC,那么你应该也会知道了。(注:前2个可能不适用制作VHD文件)

  • 现在大家应该知道这个启动是怎么回事了,如果还没有理解,可以这么想想一下,在Win7内核 以及 启动引导中,增加了对 VHD 文件 的磁盘控制器的虚拟硬件。

  • 好的,接下来,说说 要求和限制

  • 要求

  • VHD启动需要依赖一下几点:

  • 磁盘上至少有2个分区:一个是作为启动的,另一个是用来存放文件的。(注意不要加密)
  • 包含VHD文件的分区必须拥有足够大的可用空间。(稍后说明)

限制

原生 VHD 有一下限制:

  • 原生VHD 启动 只支持 下列版本:
  • Windows® 7 Enterprise
  • Windows® 7 Ultimate
  • Windows Server 2008 R2
  • 原生VHD磁盘最大附加VHD文件并行数量约为512个。
  • 原生VHD启动不支持系统休眠,但睡眠还是支持的。(不知道什么是休眠,睡眠的看这里http://www.hackline.net/a/school/xtrm/2009/0823/227.html
  • VHD文件不能嵌套。即不能VHD下的VHD文件。
  • 原生VHD启动不支持 服务器消息块(SMB)共享。(说实话,这个我也不是太清楚,虽说Windows的共享就是这个。)
  • 不能在VHD文件卷上使用 Bitlocker 加密,并且 在VHD内部的卷也不能使用 bitlocker 。
  • VHD 的父文件不能是卷快照的一部分。
  • 附加VHD磁盘不能被配置成动态磁盘。
  • VHD的父文件不能被配置成动态磁盘。

 

要强调的是,

VHD启动不仅需要 Win7的启动引导,还需要 Win7 系统,即VHD里面的安装的是 WIn7或者 WIn2008 R2。想安装XP是不可能的了。

那么,接下来说说制作步骤。

整个过程大概分成2部分。

1、准备VHD镜像

2、部署VHD镜像

 

1、准备 VHD镜像文件

这个部分又分成2中方式,一是从 安装镜像中,直接提取系统文件。二是在虚机中安装系统,然后使用sysprep 进行封装。

1.1、从安装镜像提取文件

这个需要用到 Windows(R) 7 的 Windows(R) 自动安装工具包 (AIK) 中的ImageX 工具。

在开始之前,先说一下,我的实验环境是 Win2008 R2 虚机 ,并且已经安装了Win7的AIK。

为了以后的方便,(为了以后),先把安装光盘中的文件复制到硬盘上, 例如 D:\Sources

win7 启动 mongodb Win7 启动 vhd_xml

首先是建立VHD磁盘,步骤如下:

1: 在单击开始,输入“Diskmgmt.msc”,启动磁盘管理。

win7 启动 mongodb Win7 启动 vhd_Windows_02

2: 单击 “显示/隐藏控制台树”(位于“磁盘管理”中)按钮。

win7 启动 mongodb Win7 启动 vhd_Windows_03

3: 在“磁盘管理 (框线项目)”上右键单击。

win7 启动 mongodb Win7 启动 vhd_Windows_04

4: 单击“创建 VHD (菜单项目)”。

win7 启动 mongodb Win7 启动 vhd_xml_05

5: 单击“浏览(B)... ” ,并选择一个虚拟磁盘的保存位置, 并起一个文件名,这里是“Test.vhd”,然后单击保存。

win7 启动 mongodb Win7 启动 vhd_xml_06

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_07

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_08

6: 选择一个磁盘类型,这里选择“动态扩展(D) ”。(注:选择哪个都可以,只不过,选择固定的创建起来有点费时,另外,后期可以通过虚机的磁盘管理器进行转换。)

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_09

7: 在“虚拟硬盘大小(S): ” 输入要创建的虚拟硬盘大小,这里输入“60” 单位选择“GB”,然后单击确定。 (注:有关这个大小的注意,请看后面)

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_10

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_11

8: 在“磁盘管理”中,右键单击新建的磁盘 行头,选择“初始化磁盘(I) ”。

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_12

9: 在弹出的“初始化磁盘”对话框中,选择需要初始化的磁盘,并单击“确定”。

win7 启动 mongodb Win7 启动 vhd_xml_13

10: 右键单击 虚拟磁盘的空白区域,选择“新建简单卷(I)... ”。

win7 启动 mongodb Win7 启动 vhd_xml_14

11: 按照“新建简单卷向导”中的提示操作,创建一个新的分区。

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_15

win7 启动 mongodb Win7 启动 vhd_Windows_16

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_17

win7 启动 mongodb Win7 启动 vhd_Windows_18

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_19

再来就是提取安装镜像文件

1: 单击“开始”,“所有程序”,“Microsoft Windows AIK ” ,单击 “部署工具命令提示 ”,打开 PE环境控制台。(如果不这么做的话,会提示ImageX 文件无法找到,当然,你也可以指定完整路径)

win7 启动 mongodb Win7 启动 vhd_Windows_20

2: 在“管理员: 部署工具命令提示”中输入 “imagex /apply "D:\Sources\Win7 X64\sources\install.wim" "Windows 7 ULTIMATE" g:\”,展开镜像

(解释一下,Imagex是WIM的编辑的工具, /apply 是解压 ,

"D:\Sources\Win7 X64\sources\install.wim" 是Win7X64安装盘所在位置(install.wim是固定的),

"Windows 7 ULTIMATE" 是Win7版本,这个是必须是影响中已经存在的,可以通过 “imagex /info 安装镜像WIM文件 "D:\Sources\Win7 X64\sources\install.wim" ”来查看

g:\ 要解压到的位置)

win7 启动 mongodb Win7 启动 vhd_Windows_21

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_22

好,到此为止就算解压完镜像文件了。

如果你想放入自动应答,让安装程序自动完成一部分。可以现在就做,否则,跳过。

1、定位到虚拟磁盘上的 Windows 目录下,然后新建一个文件夹,名字是“Panther”(注:一定要是这个名字)

2、然后将应答文件复制到这个目录中,并重命名为“unattend.xml”。(注:一定要是这个名字)

3、如果应答文件中,使用了其他工具或者批处理文件,请将这些文件复制到对应的路径中。

那么接下来,就是卸载VHD虚拟磁盘文件了

1: 打开“磁盘管理”,在虚拟磁盘的行标头上右键单击,选择 “分离 VHD ”。

win7 启动 mongodb Win7 启动 vhd_Windows_23

2: 在“分离虚拟硬盘”对话框中单击“确定”,即可分离磁盘了。

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_24

1.2 使用虚机制作VHD文件

其实,使用虚机制作,就是用虚机去安装系统,然后把VHD文件拿出来。(注:VPC ,Virtual Server 安装的系统在部署后可能会有问题)

这里我以Hyper-V 虚机为例,进行演示。

1、打开“Hyper-V 管理器”,在操作中选择“新建”,“虚拟机”。

win7 启动 mongodb Win7 启动 vhd_Windows_25

2、在打开的 “新建虚拟机向导”对话框,单击下一步,输入虚机的名字,然后单击下一步。

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_26

3、设置分配给虚机的内存,这里输入1024,即1G,然后单击下一步。(注:内存最少可以是512M,最大是物理内存大小,请根据具体情况选择合适大小)

win7 启动 mongodb Win7 启动 vhd_xml_27

4、配置网络,选择一个可用的网络,如果想配置干净的虚机,可以不设置或者选择一个不能上网的测试网络,免得安装补丁,单击下一步继续。

win7 启动 mongodb Win7 启动 vhd_Windows_28

5、创建虚拟磁盘,可以创建一个新的虚拟磁盘,也可以选择一个现有的,单击下一步继续。(关于虚拟磁盘的大小问题,稍后会有说明)

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_29

6、设置安装光盘镜像的位置,单击下一步继续。

win7 启动 mongodb Win7 启动 vhd_xml_30

7、单击 “完成”,开始创建虚机。

win7 启动 mongodb Win7 启动 vhd_Windows_31

8、在“Hyper-V 管理器”中,选中新建的虚机,单击操作中的连接。

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_32

9、启动虚机,并安装系统。

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_33

10、(可选)如果希望减少以后安装的麻烦,可以现在先安装上必要的工具。(如:VS,输入法,什么的)(注:虚机插件可以不用安装,Win7自带了对Hyper-V的驱动)

11、封装系统,用管理员权限打开命令行, 执行如下命令:(如果怕出问题,可以先做个备份或者快照)

如果,你安装的系统是WIn7,请先执行这个,否则封装将会出错。Win2008R2没有这个问题。

“Net stop WMPNetworkSvc”

(关闭 “Windows Media Player Network Sharing Service”服务)

“cd %windir%\system32\sysprep”

“sysprep.exe /oobe /shutdown /unattend:win7.xml”

(/unattend 是 设置自动应答文件的,如果不需要可以不指定)

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_34

当封装完毕后,虚机系统会自动关闭。

然后,我们可以在优化一下VHD文件的大小。

1、参考上一部分的内容,将VHD文件附加到计算机上。

2、然后 清理一下 VHD的虚拟磁盘上的东西,比如可以删除页面文件(pagefile.sys),还有者临时文件夹的内容。

3、清理完后,卸载VHD镜像。

4、在“Hyper-V 管理器”中,选中 对应的虚机,然后单击 右边的 “设置”。

5、选中 “硬盘驱动器”,确认磁盘文件所在位置。

5、在“Hyper-V 管理器”中选择,“编辑器磁盘”。

win7 启动 mongodb Win7 启动 vhd_xml_35

6、在“编辑虚拟磁盘向导“对话框中单击下一步继续。

win7 启动 mongodb Win7 启动 vhd_Windows_36

7、选择刚才确定文件位置,然后单击下一步继续。

win7 启动 mongodb Win7 启动 vhd_xml_37

8、选择 “压缩”,然后单击下一步。

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_38

9、单击确定,开始压缩VHD。

win7 启动 mongodb Win7 启动 vhd_Windows_39

好,这样就获得了VHD系统文件。

VHD的准备就到此结束了。

然后就是系统部署了。

(压缩之后,一般可以大幅度的减少大小,我这成功的将40G清理到30G,这样在部署下载时候,能提高速度。)

2、 部署VHD文件

部署VHD也分成2个部分,一个是裸机部署,一个是在已有系统上进行部署。

那么先从裸机部署开始。

在开始之前,请先把要部署的VHD文件放到 共享中,或者FTP中。

2.1 裸机部署VHD 文件

所谓的裸机,是指硬盘上没有系统,或者要把原有硬盘内的东西清理掉,从而,机器中没有启动引导的一种状态。

1、使用 Win7或者Win2008R2的安装光盘,U盘也可以,启动机器。(注: 在启动之前,可以往U盘中复制一些FTP工具等,方便操作。至于使用是X64位还是X86安装盘,请根据VHD文件内的系统类型选择。还有X64的安装盘启动的PE里面也是X64的,精简掉了32位运行子系统,所以工具需要是64位版的)

2、进入安装界面后,选择好正确的语言,单击“下一步”。

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_40

3、选择“修复计算机”,稍等一会,之后出来系统恢复选项,单击下一步,然后选择“命令提示符”。

win7 启动 mongodb Win7 启动 vhd_Windows_41

win7 启动 mongodb Win7 启动 vhd_Windows_42

win7 启动 mongodb Win7 启动 vhd_Windows_43

4、可以先输入“start”命令,打开一个新的命令行窗口, 然后在输入“startnet” 开启网络支持。

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_44

5、切换到另一个窗口,输入“Diskpart”,对系统进行分区。

6、(可选)清除硬盘上的分区,在命令提示窗口中输入:

 


win7 启动 mongodb Win7 启动 vhd_xml_45

List Disk 查看系统上磁盘


win7 启动 mongodb Win7 启动 vhd_xml_45

Select disk 1 选择一个系统硬盘,根据上面返回的索引信息。


win7 启动 mongodb Win7 启动 vhd_xml_45

Clean 清除磁盘上的所有内容。

win7 启动 mongodb Win7 启动 vhd_xml_45


win7 启动 mongodb Win7 启动 vhd_xml_45


win7 启动 mongodb Win7 启动 vhd_xml_50

7、创建系统分区(用于启动引导)。例如,这里建立一个100MB的系统分区。在命令提示窗口中输入:


win7 启动 mongodb Win7 启动 vhd_xml_45

create partition primary size=100 


win7 启动 mongodb Win7 启动 vhd_xml_45

format quick fs=ntfs 


win7 启动 mongodb Win7 启动 vhd_xml_45

assign letter=s 


win7 启动 mongodb Win7 启动 vhd_xml_45

active


win7 启动 mongodb Win7 启动 vhd_xml_45


win7 启动 mongodb Win7 启动 vhd_xml_45

创建分区


win7 启动 mongodb Win7 启动 vhd_xml_45

格式化


win7 启动 mongodb Win7 启动 vhd_xml_45

分配盘符


win7 启动 mongodb Win7 启动 vhd_xml_45

激活(非常重要)


 

8、接下来在创建一个主分区。例如,可以用剩余空间。在命令提示窗口中输入:


win7 启动 mongodb Win7 启动 vhd_xml_45

create partition primary 


win7 启动 mongodb Win7 启动 vhd_xml_45

format quick fs=ntfs 


win7 启动 mongodb Win7 启动 vhd_xml_45

assign letter=c


 

9、接下来,将VHD复制到计算机上,切换到另一个命令窗口。

如果使用Windows共享,请按一下步骤操作

先用Net use 连接网络共享文件夹,如果提示要用户名话,建议输入 “机器名\用户名” 的形式

 


win7 启动 mongodb Win7 启动 vhd_xml_45

net use y: 

\\network_share\

win7 启动 mongodb Win7 启动 vhd_xml_45


win7 启动 mongodb Win7 启动 vhd_xml_45


然后复制VHD文件到本地磁盘


win7 启动 mongodb Win7 启动 vhd_xml_45

copy y:\Windows7.vhd c:


win7 启动 mongodb Win7 启动 vhd_xml_67

如果使用FTP的话,建议使用第三方工具,系统内部的FTP因为一些问题无法正常工作。

10、下载完成后,就可以附加VHD文件到系统了,切换回原来的窗口。这里假设VHD文件名字是“Windows7.vhd”,在命令提示窗口中输入:

 


win7 启动 mongodb Win7 启动 vhd_xml_45

select vdisk file=c:\windows7.vhd 


win7 启动 mongodb Win7 启动 vhd_xml_45

attach vdisk


11、当附加完VHD文件之后,系统会自动分配一个盘符。可以通过卷列表查看盘符。在命令提示窗口中输入:

 


win7 启动 mongodb Win7 启动 vhd_xml_45

list volume


12、使用BCDboot工具(位于VHD内的Windows\System32 或者 Windows PE 媒体中),来将启动环境文件从VHD中的\Windows 文件夹复制到系统分区。BCDboot 工具会自动创建BCD配置文件来启动VHD。有关 BCDboot 的更多信息,请看本文最后的参考。


win7 启动 mongodb Win7 启动 vhd_xml_45

cd v:\windows\system32 


win7 启动 mongodb Win7 启动 vhd_xml_45

bcdboot v:\windows /s s:


 

( v 是附加VHD文件的卷的盘符)

13、这完成后就可以分离VHD文件了。在命令提示窗口中输入:

 


win7 启动 mongodb Win7 启动 vhd_xml_45

select vdisk file=c:\windows7.vhd 


win7 启动 mongodb Win7 启动 vhd_xml_45

detach vdisk 


win7 启动 mongodb Win7 启动 vhd_xml_45

Exit


14、重启计算机。

2.2 在已有系统的机器上 部署原生VHD启动

其实,这个部分,可以换一个说法。就是将VHD文件添加到启动菜单中。

1、先将VHD文件复制到本地机器。

2、使用管理员模式打开命令行。

3、复制已有的启动引导,然后使用VHD信息来修改启动数据。


win7 启动 mongodb Win7 启动 vhd_xml_45

bcdedit /copy {current} /d "vhd boot (locate)" 


(注:/d 后面的是显示的启动名字,可以自定义,中文也可以,但如果你的系统不是中文的,会乱码。)
当成功执行完这个命令后,会返回一个 {GUID} 字符串。

4、复制上一个命令输出的 {GUID} 字符串,以便之后使用。

5、设置 VHD 启动项目的 device 和 osdevice 选项。

 


win7 启动 mongodb Win7 启动 vhd_xml_45

bcdedit /set {guid} device vhd=[locate]\windows7.vhd 


win7 启动 mongodb Win7 启动 vhd_xml_45

bcdedit /set {guid} osdevice vhd=[locate]\windows7.vhd


(将 {GUID} 替换成 之前复制的内容, [locate] 内容换成本地盘符)

6、在某些 x86系统中需要在启动配置中设置一个选项,来探测硬件信息。

win7 启动 mongodb Win7 启动 vhd_Windows_79

 


win7 启动 mongodb Win7 启动 vhd_xml_45

bcdedit /set {guid} detecthal on


7、重启计算机

 

 

 

重启玩之后, Windows 启动管理器将会启动VHD文件中包含的系统。

之后就可以随意使用了,和正常的使用没有多少区别。

 

大家可能会有一些疑问,那么接下来,我来做一些回答。

1、从VHD启动之后的系统,到底是运行在虚拟机上?还是直接运行在物理硬件之上?

答:是运行在物理硬件上。 在Win7以及WIn2008 R2 中的引导程序和系统本身都包含了对VHD文件的读写(虚拟)驱动程序,以及虚拟的VHD磁盘控制器。不要被这个虚拟所误导,这里指的是模拟硬件,比如最常见的虚拟光驱。因此我们可以在启动计算机的时候,访问VHD并且从其上启动;也可以在Windows 7中直接创建、加载和卸载VHD文件。不过行为有些不同,这些驱动是在系统内核中的,系统本身也会知道自己运行在VHD文件上。因此,会把虚拟内存文件放到非VHD磁盘的 物理磁盘上,也不会写入到VHD内部。

win7 启动 mongodb Win7 启动 vhd_虚拟磁盘_81

 

2、从VHD启动,还需要哪些必备的条件?

答:对于VHD启动本身,对硬件并没有多少要求,只能能运行系统即可。不过对于软件方面来说,系统必须是以下版本,

  • Windows® 7 Enterprise
  • Windows® 7 Ultimate
  • Windows Server 2008 R2

XP和Vista是不行的,因为驱动问题。而WIn7 的版本必须是 企业版之上,这个策略限制,如果版本不对的话,会提示不支持,然后关机的。

 

3、是否会有性能的损失?

答:会有一些损失,但很小可以忽略。 主要原因是对文件系统读写访问的时候,需要经过额外的一层VHD读写驱动的解析,这里面有一些微量的I/O性能开销,但是跟虚拟化的情况相比,性能基本上接近了真机。下图是在网上找到的测试资料,有一组直接读取硬盘和读写VHD的比较,性能差别微乎其微。

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_82

 

4、VHD 文件格式 如何选择?

答:VHD 文件分为 固定,动态扩展 还有差异 三种格式(其实,还有一种 连接到物理磁盘的格式,不过这里用不上)

首先是固定,固定是固定大小,在建立完磁盘后,用空数据填充,使其达到设置的磁盘大小。

动态是根据写入信息的多少,动态的增加磁盘大小。(当然,这种情况下,容易产生磁盘碎片)

差异是一种父子关系,新建立的磁盘会保存和源盘不相同的内容。

这3种类型选择哪个都可以,不过对于性能来说,应该选择 固定的。但 固定的建立需要填充文件,所以非常占用时间。

不过,这里要说的是,经过我的测试发现,不管选择什么类型的VHD,在使用它启动系统后,都会变成固定的。

也就是说,如果你设置VHD文件有127G,那么通过它进入系统后,你会看到VHD文件变成127G。

因此,如果VHD文件所在的磁盘空间不够的话,将会无法启动系统。

(如果是动态磁盘的话,在关机之后,文件会变回实际大小)

但这个有个例外,就是差异文件。使用差异的话, 父盘的大小是不会变动的。

个人比较推荐 差异,可以使用这个来建立多个系统。

差异文件的建立方法是在Diskpart中,输入以下命令

 

win7 启动 mongodb Win7 启动 vhd_xml_45

create vdisk file="D:\pathToVhd.vhd" parent="D:\pathtoparent.vhd"

win7 启动 mongodb Win7 启动 vhd_xml_45

(就是用Parent 来指定父文件)

下图就是一个事例,Win7Base.vhd 是父盘,Win7Disk.VHD是当前正在使用的系统文件。 可以看到 它的大小 已经变成了设置的最大大小(127G)

win7 启动 mongodb Win7 启动 vhd_win7 启动 mongodb_85

另外,也可以看到 页面文件 ,因为VHD文件本身会有一点性能损失,加上一些其他问题等,所以 页面文件不会放到VHD文件内部。

 

5、在裸机部署完之后,重启后,看到菜单是英文的?

答:是的。即使你用的是中文版的安装盘在第一次启动的时候,也是英文的,但不要紧,进入系统之后,下次重启时就会变成中文的了。主要原因是,在设置启动引导项目的时候,默认的语言是en-us,而不是zh-cn。

 

6、是否可以挂接X64和X86 系统?

答:可以。 在启动引导中添加相应的条目即可。如果使用的是PE环境部署的,建议使用PE里面的bcdboot 来设置启动项。

 

7、部署方法有何区别?

答:实际上,部署主要是将启动信息添加到系统的启动菜单中。

有2个方法,使用BCDEDIT或者使用BCDBOOT,不管使用哪种部署,都可以使用。只不过后者需要先挂上VHD磁盘。

 

(有待补充)

 

 

最后附上一个自动应答文件,也可以使用 “Windows 系统映像管理器”创建一个。

请自行替换XML中【】内容

win7 启动 mongodb Win7 启动 vhd_xml_86win7 启动 mongodb Win7 启动 vhd_Windows_87unattend

  1

win7 启动 mongodb Win7 启动 vhd_xml_45

<?xml versinotallow="1.0" encoding="utf-8"?>

  2

win7 启动 mongodb Win7 启动 vhd_xml_45

<unattend xmlns="urn:schemas-microsoft-com:unattend">

  3

win7 启动 mongodb Win7 启动 vhd_xml_45

    <servicing></servicing>

  4

win7 启动 mongodb Win7 启动 vhd_xml_45

    <settings pass="oobeSystem">

  5

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  6

win7 启动 mongodb Win7 启动 vhd_xml_45

            <OOBE>

  7

win7 启动 mongodb Win7 启动 vhd_xml_45

                <HideEULAPage>true</HideEULAPage>

  8

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ProtectYourPC>1</ProtectYourPC>

  9

win7 启动 mongodb Win7 启动 vhd_xml_45

            </OOBE>

 10

win7 启动 mongodb Win7 启动 vhd_xml_45

            <RegisteredOrganization>【组织名称】</RegisteredOrganization>

 11

win7 启动 mongodb Win7 启动 vhd_xml_45

            <RegisteredOwner>【所有者】</RegisteredOwner>

 12

win7 启动 mongodb Win7 启动 vhd_xml_45

            <OEMInformation>

 13

win7 启动 mongodb Win7 启动 vhd_xml_45

                <Manufacturer>【组织名称】</Manufacturer>

 14

win7 启动 mongodb Win7 启动 vhd_xml_45

            </OEMInformation>

 15

win7 启动 mongodb Win7 启动 vhd_xml_45

            <WindowsFeatures>

 16

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ShowMediaCenter>true</ShowMediaCenter>

 17

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ShowInternetExplorer>true</ShowInternetExplorer>

 18

win7 启动 mongodb Win7 启动 vhd_xml_45

            </WindowsFeatures>

 19

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 20

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 21

win7 启动 mongodb Win7 启动 vhd_xml_45

            <OEMInformation>

 22

win7 启动 mongodb Win7 启动 vhd_xml_45

                <Manufacturer>【组织名称】</Manufacturer>

 23

win7 启动 mongodb Win7 启动 vhd_xml_45

            </OEMInformation>

 24

win7 启动 mongodb Win7 启动 vhd_xml_45

            <OOBE>

 25

win7 启动 mongodb Win7 启动 vhd_xml_45

                <HideEULAPage>true</HideEULAPage>

 26

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ProtectYourPC>1</ProtectYourPC>

 27

win7 启动 mongodb Win7 启动 vhd_xml_45

            </OOBE>

 28

win7 启动 mongodb Win7 启动 vhd_xml_45

            <WindowsFeatures>

 29

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ShowMediaCenter>true</ShowMediaCenter>

 30

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ShowWindowsMediaPlayer>true</ShowWindowsMediaPlayer>

 31

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ShowInternetExplorer>true</ShowInternetExplorer>

 32

win7 启动 mongodb Win7 启动 vhd_xml_45

            </WindowsFeatures>

 33

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 34

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 35

win7 启动 mongodb Win7 启动 vhd_xml_45

            <InputLocale>zh-CN</InputLocale>

 36

win7 启动 mongodb Win7 启动 vhd_xml_45

            <SystemLocale>zh-CN</SystemLocale>

 37

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UILanguage>zh-CN</UILanguage>

 38

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UserLocale>zh-CN</UserLocale>

 39

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 40

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 41

win7 启动 mongodb Win7 启动 vhd_xml_45

            <InputLocale>zh-CN</InputLocale>

 42

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UILanguage>zh-CN</UILanguage>

 43

win7 启动 mongodb Win7 启动 vhd_xml_45

            <SystemLocale>zh-CN</SystemLocale>

 44

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UserLocale>zh-CN</UserLocale>

 45

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 46

win7 启动 mongodb Win7 启动 vhd_xml_45

    </settings>

 47

win7 启动 mongodb Win7 启动 vhd_xml_45

    <settings pass="windowsPE">

 48

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 49

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UserData>

 50

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ProductKey>

 51

win7 启动 mongodb Win7 启动 vhd_xml_45

                    <WillShowUI>OnError</WillShowUI>

 52

win7 启动 mongodb Win7 启动 vhd_xml_45

                </ProductKey>

 53

win7 启动 mongodb Win7 启动 vhd_xml_45

                <Organization>【组织名称】</Organization>

 54

win7 启动 mongodb Win7 启动 vhd_xml_45

                <AcceptEula>true</AcceptEula>

 55

win7 启动 mongodb Win7 启动 vhd_xml_45

            </UserData>

 56

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 57

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 58

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UserData>

 59

win7 启动 mongodb Win7 启动 vhd_xml_45

                <ProductKey>

 60

win7 启动 mongodb Win7 启动 vhd_xml_45

                    <WillShowUI>OnError</WillShowUI>

 61

win7 启动 mongodb Win7 启动 vhd_xml_45

                </ProductKey>

 62

win7 启动 mongodb Win7 启动 vhd_xml_45

                <Organization>【组织名称】</Organization>

 63

win7 启动 mongodb Win7 启动 vhd_xml_45

                <AcceptEula>true</AcceptEula>

 64

win7 启动 mongodb Win7 启动 vhd_xml_45

            </UserData>

 65

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 66

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 67

win7 启动 mongodb Win7 启动 vhd_xml_45

            <InputLocale>zh-CN</InputLocale>

 68

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UserLocale>zh-CN

 69

win7 启动 mongodb Win7 启动 vhd_xml_45

</UserLocale>

 70

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UILanguage>zh-CN</UILanguage>

 71

win7 启动 mongodb Win7 启动 vhd_xml_45

            <SystemLocale>zh-CN</SystemLocale>

 72

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 73

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 74

win7 启动 mongodb Win7 启动 vhd_xml_45

            <InputLocale>zh-CN</InputLocale>

 75

win7 启动 mongodb Win7 启动 vhd_xml_45

            <SystemLocale>zh-CN</SystemLocale>

 76

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UILanguage>zh-CN</UILanguage>

 77

win7 启动 mongodb Win7 启动 vhd_xml_45

            <UserLocale>zh-CN</UserLocale>

 78

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 79

win7 启动 mongodb Win7 启动 vhd_xml_45

    </settings>

 80

win7 启动 mongodb Win7 启动 vhd_xml_45

    <settings pass="specialize">

 81

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 82

win7 启动 mongodb Win7 启动 vhd_xml_45

            <!-- <ProductKey></ProductKey> !-->

 83

win7 启动 mongodb Win7 启动 vhd_xml_45

            <RegisteredOrganization>【组织名称】</RegisteredOrganization>

 84

win7 启动 mongodb Win7 启动 vhd_xml_45

            <RegisteredOwner>【所有者】</RegisteredOwner>

 85

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 86

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 87

win7 启动 mongodb Win7 启动 vhd_xml_45

            <Identification wcm:action="modify">

 88

win7 启动 mongodb Win7 启动 vhd_xml_45

                <JoinWorkgroup wcm:action="modify">【组织名称】</JoinWorkgroup>

 89

win7 启动 mongodb Win7 启动 vhd_xml_45

            </Identification>

 90

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 91

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 92

win7 启动 mongodb Win7 启动 vhd_xml_45

            <Identification>

 93

win7 启动 mongodb Win7 启动 vhd_xml_45

                <JoinWorkgroup>【组织名称】</JoinWorkgroup>

 94

win7 启动 mongodb Win7 启动 vhd_xml_45

            </Identification>

 95

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 96

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-Security-Licensing-SLC-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 97

win7 启动 mongodb Win7 启动 vhd_xml_45

            <SkipAutoActivation>true</SkipAutoActivation>

 98

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

 99

win7 启动 mongodb Win7 启动 vhd_xml_45

        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

100

win7 启动 mongodb Win7 启动 vhd_xml_45

            <RegisteredOrganization>【组织名称】</RegisteredOrganization>

101

win7 启动 mongodb Win7 启动 vhd_xml_45

            <RegisteredOwner>【所有者】</RegisteredOwner>

102

win7 启动 mongodb Win7 启动 vhd_xml_45

        </component>

103

win7 启动 mongodb Win7 启动 vhd_xml_45

    </settings>

104

win7 启动 mongodb Win7 启动 vhd_xml_45

    <cpi:offlineImage cpi:source="catalog:d:/sources/win7 x64/sources/install_windows 7 ultimate.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />

105

win7 启动 mongodb Win7 启动 vhd_xml_45

</unattend>

106

win7 启动 mongodb Win7 启动 vhd_xml_45

 

 

参考:

Understanding Virtual Hard Disks with Native Boot
http://technet.microsoft.com/en-us/library/dd799282(WS.10).aspx

Walkthrough: Deploy a Virtual Hard Disk for Native Boot
http://technet.microsoft.com/en-us/library/dd744338(WS.10).aspx

Add a Native-Boot Virtual Hard Disk to the Boot Menu
http://technet.microsoft.com/en-us/library/dd799299(WS.10).aspx

Windows 7对VHD文件的内建支持
http://blogs.technet.com/fyu/archive/2009/01/19/windows-7-vhd.aspx

从VHD文件启动计算机
http://blogs.technet.com/fyu/archive/2009/01/19/vhd.aspx

深入研究Windows 7中的Virtual Hard Disk (VHD) 技术
http://blogs.technet.com/fyu/archive/2009/01/21/windows-7-virtual-hard-disk-vhd.aspx

再谈从虚拟磁盘文件启动计算机
http://blogs.technet.com/fyu/archive/2009/02/01/3195439.aspx

BCDboot 命令行选项
http://technet.microsoft.com/zh-cn/library/dd744347(WS.10).aspx

BCDEdit 命令行选项
http://technet.microsoft.com/zh-cn/library/cc709667(WS.10).aspx>

 

使用工具

Windows(R) 7 的 Windows(R) 自动安装工具包 (AIK)

http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&displaylang=zh-cn