欢迎光临,这里是 gOxiA=苏繁=SuFan 独立的个人博客。
本站域名:http://goxia.maytide.net or http://sufan.maytide.net
移动设备请访问:http://goxia.maytide.net/m
转载文章,请务必保留出处与作者信息,未经许可严禁用于商业用途!

        最近一位老网友一直在与我分享他使用 WDS、MDT 使所遭遇的问题,在协助他解决问题的同时我不仅“快乐”着,也同时有机会接触到更多的“问题”,今天的这个话题也源自这位老网友。

        在 WDS 中我们可以添加多个不同应用的启动映像,来满足我们实际工作中的需求。当计算机通过 PXE 引导后我们能看到如下图的引导菜单,在引导菜单中我们可以手动按上下键来选择要启动的映像,默认的启动选择为菜单列表中的第一项。

PXEBootList

        如果我们需要设置默认的启动映像,可以通过 WDS 控制器进行操作,首先打开 Windows 部署服务 控制器,选中当前 WDS 服务器,然后点击鼠标右键进入 属性,并切换到 启动 选项卡,在 默认启动映像(可选) 中为 各个体系结构指定默认的启动映像即可。配合 PXE 引导策略 还可以选择 PXE 的引导方式根据需要实现自动化的 PXE 引导。

SetWDSBoot

        但是,网友也提出了一个疑问,就是如何修改 PXE 引导菜单中启动映像的顺序,而非指定默认的启动映像。其实这个问题的解决方法很简单,思考一下 WDS 的 PXE 启动原理,不难看出 PXE 引导菜单是基于 BCD BootMgr 的,那么我们只需要修改启动配置数据(BCD)信息即可实现我们的目标。修改 BCD 我们需要用到 BCDEdit 工具,修改启动顺序则需要用到 BCDEdit 的“/displayorder”及其子参数“/addfirst”和“/addlast”。

        接下来就是要找到 PXE 使用的 BCD,这其实才是关键。OK,PXE 所使用的 BCD 存储在“RemoteInstall”的“Tmp”子目录下,在该目录中有存储着各个体系结构的 BCD 文件,我们只需要使用 BCDEdit 进行修改即可!友情提示:别忘记使用“/store”参数来指定你要编辑的 BCD 哦!

PXEBCDStoragePath

        VHD Native Boot 的路演日志(路演使用 VHD Native Boot 打造多系统应用环境)已经发布过了,再配合之前关于 VHD Native Boot 的文章应该算比较全面的,贯穿下来相信大家能够掌握 VHD Native Boot 这一创新且具颠覆性的新特性。而今天将要与大家分享的是使用 Windows Deployment Services(WDS)部署 VHD Native Boot,通过这篇文章相信大家会有很大的收获!使用 WDS 部署 VHD Native Boot 将会更加方便快捷,因为 WDS 会自动帮你在裸机上创建相关的引导信息。此外,如果现有分区上已经存在系统,WDS 部署的 VHD Native Boot 能够自动创建配置多引导。更酷的是可以部署多个 VHD Native Boot 到计算机上,同时支持差异磁盘方式以及动态磁盘。种种特性预示着该技术将会在企业环境中大大被利用,例如我们可以利用 WDS 向一台已经安装有 Windows XP 或 Windows Vista 的计算机部署一个 Windows 7 VHD,或一个事先经过预安装配置的 Windows 7系统,作为测试或过渡使用。此外使用 VHD 还同步支持物理机和虚拟机的部署,我们只需要维护一份 VHD,便可以将其部署物理计算机或虚拟系统上,效率方面得到了进一步的提升。当然 VHD Native Boot 的更多应用还有待大家去发掘,就目前而言,VHD 已经渗透到了微软多个产品中,如我们所熟悉的虚拟机磁盘;Windows Vista/7 Complete PC Backup,Windows Server Backup 备份的文件格式;iSCSI LUNs 的后端存储以及SCVMM中的 Management Support。

        下面就让 gOxiA 引领大家开始这一体验之旅,在开始前有必要提示一下准备工作,首先要准备一个完整的 WDS 环境,需要注意的是 WDS 必须是基于 Windows Server 2008 R2 的,因为部署 VHD 这一功能只有 WS08R2 支持。系统 SKU 的选择,目前 Client 只有 Windows 7 的 Enterprise 以及 Ultimate 支持 VHD Native Boot,而 Server 则 Windows Server 2008 R2 SKUs 都支持。接下来我们需要准备一份用于部署的 VHD 文件,可以参考之前的文章使用 imagex 工具释放 Install.wim 中的对应版本到 VHD 中,也可以使用 WIM2VHD 工具进行转换,或者使用 Disk2VHD 抓取现有的系统 VHD 映像,但是需要考虑硬件驱动及 SID 等问题,建议执行 Sysprep,或者在虚拟机中直接安装系统,并进行必要的配置及常用软件的安装,之后执行 Sysprep。最后将这些 VHD 拷贝到 WDS 以备后用。另外,将 Windows 7 或 Windows Server 2008 R2 的安装光盘中 Sources 目录下的 Boot.wim 添加到 WDS 的启用映像中,用于后面的引导和安装,这一步骤不再复述,非常简单!

image
(Windows 启动流程示意图)

NativeVHDSchema
(VHD Native Boot 架构)

        准备工作结束后,就开始进入正题。因为 WDS 目前还不支持 UI 方式,即通过 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

Add-Image VHD

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

image

        OK,现在就来感受一下成果,启动一台客户端计算机(物理机或虚拟机均可)通过 PXE 引导进入 WDS 的安装向导界面,选择之前添加的 VHD 执行安装,接下来的时间可以休息一下!

image

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

image

        在欣喜之余对 VHD Native Boot 做一下总结,虽然 VHD Native Boot 有很大的发展潜力和优势,但是大家还是需要了解一些他的注意事项:

  • 强烈建议将 VHD 单独部署到一个独立分区中,并且不要在该分区内存储其他数据;
  • 不论 VHD 是固定磁盘还是动态扩展磁盘格式,存储 VHD 的分区一定要大于 VHD 的总容量;
  • VHD Native Boot 最大支持 512 个实例;
  • 不支持休眠;
  • 无法使用 BitLocker;
  • VHD 所在父分区不支持 Volume Snapshot;
  • 不支持 RAID。

         最后,WDS 部署 VHD 支持无人值守脚本,从而实现自动化部署。差异磁盘的创建则在 diskpart 命令环境中执行如:“create vdisk file=child.vhd parent=name.vhd”的命令行即可,其中 parent 即指定父硬盘。

        至此,本篇即告结束!欢迎感兴趣的网友与 gOxiA 联系共同学习探讨!

Tags: , , , , , , , , ,

        在上一篇日志 — 《HOWTO:在 Windows 7 中嵌入 Windows PE》中,gOxiA 与大家分享了将 Windows PE 嵌入到 Windows 7 中的具体实施步骤,而这篇日志将利用 Windows 7 的新特性 — VHD Native Boot,来实现 Windows PE 以 VHD 方式来引导。就目前的应用而言,此方法真正的使用价值还有待推敲,但是不能否认的是一旦使用 Windows PE VHD Native Boot,那么在 Windows PE 中的修改将会得到保存,如果将网上网友定制的功能丰富的 Windows PE 3.0(此类 PE 集成了很多实用工具,甚至包含了浏览器和QQ,并且桌面也极像 Windows 的标准桌面。)拿来使用,那么该 Windows PE 完全可以作为一个轻量级的系统来进行使用。需要注意的是可能会与授权问题相抵触,使用前需慎重考虑!

        本文侧重点是实现 Windows PE 3.0 的 VHD Native Boot,如果你对 VHD Native Boot 的使用已经相当了解,那么具体操作起来是非常容易的,我们只需要将定制的 Windows PE 3.0 中的 Boot.wim 释放到 VHD 中即可。此外还需注意,Boot.wim 释放后的容量要比 wim 容量大很多,那么在创建 VHD 时一定要将容量设置的大一些。下面是具体的操作指令:

diskpart

create vdisk file=d:\winpe3.vhd maximum=2000 type=expandable

list disk

sel disk 1

create partition primary

format fs=ntfs quick label=WinPE3

assign letter=v

        上面的指令将在 D 盘创建一个动态扩展类型,最大2G的名为 winpe3.vhd 的虚拟磁盘文件。并为其创建一个主分区,使用 NTFS 格式快速格式化,卷标为 WinPE3,并将其盘符分配为 V。“list disk”用于显示当前的磁盘信息,便于之后执行“sel disk n”选择虚拟磁盘。为了方便之后的操作,建议不要退出 diskpart。

        之后使用 imagex 或支持 wim 格式的解压缩软件将其释放到虚拟磁盘 V 上,释放完毕后在 diskpart 下执行“datech vdisk”卸载虚拟磁盘,如果之前已经退出 diskpart,则重新进入后需要先选择 vdisk,即“sel vdisk file=d:winpe3.vhd”,之后再执行卸载虚拟磁盘的命令。

        最后生成 Windows PE VHD Native Boot 的引导信息,并添加到 ToolsDisplayOrder 引导列表中,为此执行如下操作:

bcdedit /copy {current} /d "Windows PE VHD Native Boot"

bcdedit /set {GUID} device vhd=[d:]\winpe3.vhd

bcdedit /set {GUID} osdevice vhd=[d:]\winpe3.vhd

bcdedit /set {GUID} detecthal yes

bcdedit /set {GUID} winpe yes

bcdedit /toolsdisplayorder {GUID} /addlast

        完成所有操作后,重新启动计算机引导时按下空格键调出引导列表,使用 Tab 键切换到 ToolsDisplayOrder 列表,进行选择。

Tags: , , , , , , ,
分页: 3/5 第一页 上页 1 2 3 4 5 下页 最后页 [ 显示模式: 摘要 | 列表 ]