使用Windows Deployment Services部署VHD Native Boot

系统 Windows
在一台 Windows 7操作系统的单机上添加一个 VHD Native Boot 的过程并不复杂。本文介绍如何使用Windows Deployment Services添加一个VHD Native Boot。该技术目前仅支持 Windows 7的企业版、旗舰版,以及Windows Server 2008 R2 系列。

VHD Native Boot 是一个能够实现从本地直接启动 VHD(Virtual HardDisk)的技术。通过 VHD Native Boot,我们最终能够实现在一台裸机上部署一套完整的 Windows 操作系统,而这个操作系统仅被包含在一个 VHD 文件中。该技术目前仅支持 Windows 7的企业版、旗舰版,以及Windows Server 2008 R2 系列。VHD Native Boot 的特性和优势是显而易见的,用户可以在 Windows 7 中创建一个 VHD,并将系统灌入到 VHD 中,通过 Windows 7 bootmgr 来启动 VHD。不论简单还是复杂的系统环境都被存储到了一个 VHD 中作为一个独立系统,所以维护起来更加方便。此外,用户还能够在同一台计算机上创建最多达512个实例的 VHD Native Boot,很轻易地创建出多个系统环境,用于生产、测试、评估和开发。

在一台 Windows 7操作系统的单机上添加一个 VHD Native Boot 的过程并不复杂,准备好 系统源文件install.wim和imagex.exe 工具(该工具能够从 WAIK 中获取,也可以从http://goxia.maytide.net/up/imagex.exe下载。),先使用 diskpart 创建一个 VHD,然后使用 imagex 释放 install.wim 对应的系统到 VHD 中,最后使用bcdedit命令为这个 VHD 创建引导信息,最后重新启动计算机在 bootmgr 列表中选择从这个 VHD启动即可。

使用diskpart创建VHD的命令行如下:

  1. diskpart  
  2. create vdisk file=d:\windows7ult.vhd maximum=20480 type=expandable 
  3. sel vdisk file=d:\windows7ult.vhd  
  4. attach vdisk  
  5. create partition primary  
  6. format fs=ntfs quick label=win7nativeboot 
  7. assign letter=v 
  8. exit  
  9.  

上面的命令行将在D盘创建一个名为windows7ult.vhd的动态扩展类型,大小为20480M的VHD,并为其创建一个NTFS格式的主分区,卷标命名为win7nativeboot,挂载到当前系统中,分配盘符v。

使用 imagex 工具释放 Windows 7 安装源 install.wim 中的旗舰版本到“v:\”,为此执行下列命令:

imagex /apply f:\soruces\install.wim 5 v:

当系统文件释放完毕之后就可以为其添加 VHD Native Boot 引导信息,为此执行下面的命令行:

  1. bcdedit /copy {current} /d “Windows 7 Ultimate VHD Native Boot”  
  2. bcdedit /set {GUID} device vhd=[d:]\windows7ult.vhd  
  3. bcdedit /set {GUID} osdevice vhd=[d:]\windows7ult.vhd  
  4. bcdedit /set {GUID} detecthal on  
  5.  

完成引导信息的创建之后,重新启动计算机,此时会在引导菜单中看到一个名“Windows 7 Ultimate VHD Native Boot”的引导项,选择它进行引导启动。经过短暂的系统初始化过程后,将进入这个 VHD 系统。

需要注意的是 VHD Native Boot 方式的系统将不支持睡眠功能,且无法使用BitLocker对磁盘进行加密,也不支持 RAID功能。此外,存放 VHD 文件的分区将不支持 Volume Snapshot,更为重要的是不论 VHD 是固定大小还是动态扩展类型,其容量必须小于当前 VHD 存储的分区大小。

到这里,我们已经对 VHD Native Boot 的创建有了详细的认识,虽然过程非常简单,但是在企业环境中 VHD Native Boot 具体能为我们带来什么优势?!我们又应当如何来应用这项技术呢?!

在 Windows 7 的开发阶段,我就有幸加入到了 Windows 7 Beta Program,对 Windows 7 进行测试和评估。从 Windows 7 M3 阶段提供系统对 VHD 的原生支持,到 Windows 7 Beta 提供的 VHD Native Boot,让我看到了 VHD Native Boot 的前景。那时我便在PC和NoteBook上开始应用 VHD Native Boot创建我的多系统环境,安装多种语言和架构版本,用于执行测试和评估工作。直至Windows 7和Windows Server 2008 R2 RTM后,公司便开始着手如何过渡到 Windows 7 系统,由于当时的企业环境还是以Windows XP系统居多,难么直接将Windows XP升级到Windows 7不免存在诸多问题,唯恐会影响正常的生产工作。但是依照常规手段安装多系统环境,除了要准备单独用于安装 Windows 7的分区,还会出现目录文件混乱的情况。要知道,企业的普通员工并不个个都是电脑高手,当他们进入系统打开资源管理器后看到两个分区都存在系统文件夹会使他们感到迷茫并产生厌烦情绪!此时,如果利用VHD Native Boot将能够化解这些忧虑和烦恼。而依照前面介绍的单机添加 VHD Native Boot的步骤,将会非常复杂,并增加额外的工作量,因为计算机已有的系统是 Windows XP,要实现 VHD Native Boot 必须要将原先的引导程序改为 Windows 7 bootmgr。手工一台一台安装 VHD Native Boot 将是一个噩梦!

OK,先别绝望!微软已经替我们考虑到了这点,现在通过Windows Server 2008 R2中的Windows Deployment Services(WDS)将能够轻而易举的将 VHD Native Boot 批量部署到用户计算机中。因为 WDS 会自动帮你在裸机上创建相关的引导信息。此外,如果现有分区上已经存在系统,WDS 部署的 VHD Native Boot 能够自动创建配置多引导。更酷的是可以部署多个 VHD Native Boot 到计算机上,同时支持差异磁盘方式以及动态磁盘。

正如我之前所介绍的,现在便可以利用Windows Server 2008 R2中WDS支持部署VHD Native Boot的这一新功能特性,向企业中已经安装有Windows XP或Windows Vista 的计算机部署一个Windows 7 VHD,或是一个事先经过预安装配置的Windows 7 VHD。此外使用VHD还同步支持物理机和虚拟机的部署,我们只需要维护一份VHD,便可以将其部署到物理计算机或虚拟系统上,效率方面也将得到进一步的提升。

因为当前企业环境已经构建在微软AD之上,现在只需要部署一台基于Windows Server 2008 R2的WDS服务器即可。通过WDS控制器,将Windows 7或Windows Server 2008 R2安装盘中的boot.wim添加到WDS启动映像中。因为 WDS 目前还不支持 UI 方式来添加VHD,即通过 WDS 管理器添加 VHD 的操作,所以我们需要借助 WDS 命令行工具 – wdsutil.exe 来完成工作。为了便于管理,我们可以单独为 VHD 类型的安装映像建立一个安装组,该操作可以使用 WDS 管理器进行添加,或使用下列命令行:

wdsutil /add-imagegroup /imagegroup:VHDs

安装组创建完毕之后就可以开始添加 VHD 映像,为此请执行下列命令:

wdsutil /verbose /progress /add-image /imagefile:d:\vhdimages\windows7ultimate.vhd /imagetype:install /imagegroup:VHDs

命令行中的 verbose 和 progress 参数可以省略,用来显示详细信息和处理进度。其他参数都很容易理解,或是用“/?”获取相关的帮助,这里不再单独说明。到这里 VHD 的添加就完成了,非常之简单!如果是差异磁盘,那么只需要直接添加差异磁盘即可,父盘会自动添加到 WDS 存储 images 的目录中,出于安全原因原父盘名称会被自动修改为 Base-1.vhd 并被赋予隐藏属性。此外,打开 WDS 管理器我们能看到 VHDs 安装组中会存在两个刚添加好的映像,其中被禁用的便是 Base-1.vhd。因为添加的 VHD 都使用内部版本名+版本号作为映像名称,所以存在多个 VHD 时容易混淆,我们可以直接修改这些映像名称!

一切准备工作就绪后,启动一台客户端计算机(物理机或虚拟机均可)通过 PXE 引导进入 WDS 的安装向导界面,选择之前添加的 VHD 执行安装,这个过程大概有10分钟左右。

下图可以看到 VHD 被部署到客户端后的存储方式,默认 WDS 会在客户端计算机目标分区建立名为 WindowsImages 的根目录,其中会依序创建000、001 这样的子目录存储部署的 VHD 文件。此外,差异磁盘的父盘也会一同部署到客户端计算机上。至于网上有网友提到的使用差异磁盘来做客户端的还原和快速恢复应用,是一个很不错的想法,但是在实际中我个人认为 VHD Native Boot 更多考虑的应该是应用中会遇到的阻碍等问题。要细心设计如何更好的应用,而不是功能本身的操作。如果要使用差异盘,则需要使用diskpart命令来创建,命令行如下:

create vdisk file=child.vhd parent=parentname.vhd

WDS部署VHD同样支持无人值守脚本,能够实现自动化部署,从而减少工作量,有效提升了效率。 目前,利用 Windows Server 2008 R2的WDS已经成功地在企业中实施了 Windows 7 VHD Native Boot 方式的部署,在保留原有 Windows XP生产平台的同时,还能够让员工轻松的开始向 Windows 7平台的过渡。高效且有保障!此外对于企业中一些特殊部门,还可以部署多种应用环境的Windows 7满足特殊需求。

责任编辑:yangsai 来源: 51CTO.com
相关推荐

2010-03-25 12:55:19

windows7VHDNative Boot

2009-09-02 08:54:01

Windows 7VHD部署

2009-09-18 08:40:56

Windows 7企业部署VHD

2009-11-06 15:47:17

WCF Windows

2022-08-31 09:31:20

AlibabaKoodinatorcontainers

2009-04-07 08:52:01

微软Windows 7操作系统

2009-10-13 08:57:58

cnbeta

2012-11-26 17:09:42

Windows 8

2009-02-25 08:49:08

Windows 7微软虚拟机

2011-08-10 15:54:12

虚拟磁盘VHD

2009-02-20 09:42:02

WindowsServerR2 Beta

2009-10-30 08:51:01

Windows 7部署PXE

2010-05-04 14:10:00

Media Servi

2017-03-21 21:37:06

组件UI测试架构

2011-05-25 17:10:39

ibmdw

2010-10-26 09:23:03

Web Service

2018-03-09 10:07:34

mysql

2009-06-14 19:06:30

ibmdwWebSphere

2009-02-20 09:19:56

AJAXASP.NETWeb Service

2012-09-10 10:40:18

IBMdw
点赞
收藏

51CTO技术栈公众号