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

WS08-R2_v_rgb  HOWTO:从移动存储上启动和运行完整版的 Windows Server 2008 R2

        还记得这篇日志吗 —《从UFD启动和运行Hyper-V Server 2008 R2》!?要从 UFD(USB Flash Disk 闪存盘)或移动硬盘上启动和运行 Hyper-V Server 2008 R2 是非常简单的,这是因为微软在 Hyper-V Server 2008 R2 中添加了对移动存储启动的支持。只需要参考日志中的操作流程,就可以看到成果了!在文中,gOxiA 提到只需要修改注册表中的相关项便能够在移动存储上运行完整版的 Windows Server 2008 R2,相信这才是大家更感兴趣的体验!

        gOxiA 先后入手了一个PNY 8G 的 UFD和一个双接口的移动硬盘盒,目前打算在这个拥有320G存储容量的双接口(eSATA+USB)硬盘盒中独立运行一个 Windows Server 2008 R2,主要用于 Hyper-V 相关的虚拟机应用,其中虚拟机也将存储在这个移动存储中。这样一来,gOxiA 就能够节省出来笔记本本身的资源,降低本机硬盘的损耗。

        实际的实施过程比较顺利,但是结果并不乐观。gOxiA 修改了 PollBootPartitionTimeout 为 30000(十进制,十六进制是0x00007530)后,在启动系统时还是出现了蓝屏 0x0000007b,看来只修改 PollBootPartitionTimeout 并不能完全解决问题。前面讲过 Hyper-V Server 2008 R2 能够直接从 UFD或大容量移动存储上启动和运行主要还是因为微软添加了对此的支持,通过对相关驱动文件内容的比较发现 Hyper-V Server 2008 R2 和 Windows Server 2008 R2 并无实质差异,不足以影响到启动失败,那么问题应该还是出在注册表设置上,查阅了一些资料发现了一个关键的注册表键 – BootDriverFlags,在 MSDN Library 中找到了合理的解释。

BootDriveFlags:On initial validation, Image Configuration Editor displays the following message in the Validation tab: Package "Bootable Windows USB Stack" would like Setting "BootDriverFlags" in Component "Kernel-PnP" set to the value "4".

        找到了关键问题所在,一切都迎刃而解!非常顺利的,gOxiA 在自己的320G移动硬盘上启动并成功运行了 Windows Server 2008。下面就将详细的操作步骤与大家分享!

        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: , , , , , , , , ,

路演使用 VHD Native Boot 打造多系统应用环境

        搜索 gOxiA 的博客查找关于 VHD 和 Native Boot 的文章确实比较匮乏,而且都比较零散,周围的朋友当工具参考的时候,也比较麻烦,所以今天写此篇日志,路演一遍使用 VHD Native Boot 打造多系统应用环境。除此之外,再分享一些小心得体会!

        在开始之前,有必要提醒大家几个注意事项,首先要准备好 image.exe 这个工具,使用它来释放系统源;其次建议准备一个独立分区,专门用来存储这些 VHDs,比如 gOxiA 就划分出一个独立的 40G 分区,用来存放 Windows Server 2008 R2、Ubuntu,根据需要还可以放入 Windows 7 英文版或64bit 进行测试或满足其他工作需求,当然这一步也不是必须得,根据自己的喜好;最后就是准备好系统源 — Install.wim。

        一切准备就绪,就可以开始了。首先安装主系统,最好是 Windows 7,毕竟桌面平台用桌面版本最符合要求(gOxiA 长期经验,不管做什么应用,桌面的还是用桌面系统最好,其他的跑虚拟化更为合适。),此外 VHD Native Boot  只有 Windows 7 和 Windows Server 2008 R2 支持,这点要尤为注意。主系统的安装过程我就不再复述,下面进入主要环节。

        我们要做的就是创建一个虚拟磁盘(VHD),将需要的系统版本安装源释放到这个 VHD 中,然后使用 bcdedit 创建这个对应 VHD 的引导信息便大功告成。过程其实很简单,因为大部分操作都涉及命令行,所以本例将全部以命令行的方式来进行路演。

        首先,我们需要使用 Diskpart 来创建一个 VHD 文件,当然也可以参考之前的文章(Discovery support Virtual Hard Disks (新增对 VHD 的支持))进行操作。

diskpart

create vdisk file=d:\ws08r2.vhd maximum=20480 type=expandable

sel vdisk file=d:\ws08r2.vhd

attach vdisk

create partition primary

format fs=ntfs quick label=WS08R2

assign letter=v

        上面的命令行很容易理解,在D盘创建一个名为 ws08r2.vhd 大小为20G的动态扩展虚拟磁盘,并挂载到当前系统,之后为该虚拟磁盘创建一个主分区,使用 NTFS 格式进行快速格式化,将其卷标命名为 WS08R2,分配其盘符 v。

        下来我们将使用 imagex.exe 释放 Windows Server 2008 R2 安装源 install.wim 中的 Windows Server 2008 R2 Standard Edition 版本到之前的虚拟磁盘中,在当前系统上虚拟磁盘的盘符是v。

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

        OK,一个命令就完成了,如果需要安装其他版本则可以使用 /info 参数来确定版本的 index 。

        最后,我们将使用 bcdedit 来创建这个 WS08R2 的引导信息,为此执行下列操作:

bcdedit /copy {current} /d "Windows Server 2008 R2 Standard Edition"

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

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

bcdedit /set {GUID} detecthal on

bcdedit /set {GUID} hypervisorlaunchtype auto

        如果希望 WS08R2 的引导不出现默认引导菜单,默认还是与往常一样进入 Windows 7,待需要时调用的话,可以将该引导项存储在 toolsdisplayorder 中,那么我们就需要先从 displayorder 中删除“Windows Server 2008 R2 Standard Edition”引导项,之后执行下面的命令再添加到 toolsdisplayorder 中,启动计算机时引导系统光标出现按下空格就可以进行调用,这也是 gOxiA 所推荐的,毕竟很美观不破坏整体效果。

bcdedit /displayorder {GUID} /remove

bcdedit /toolsdisplayorder {GUID} /addlast

        至此,我们就可以重新启动计算机引导 WS08R2 进行安装初始化,由于默认引导还是 Windows 7,所以当 VHD 上的 WS08R2 重新启动时需要认为干预选择通过 WS08R2 引导。通过这些操作我们还可以在当前系统上搭建出不同的应用环境满足自己的需求,gOxiA 基本上保证一套自己常用的主系统长期正常运行,再通过此法搭建出一套只用于 Hyper-V 的实验环境,满足自己的需求。有时候要进行教程录制或不同语言环境的测试,都需要一个干净的环境,所以 VHD Native Boot 也派上了大用场,总之充分利用这一颠覆性的创新特性能帮助我们解决不少问题,更多应用还有待用户来挖掘。

        最后希望今天这一路演能帮助从事微软相关工作的朋友们,嘿嘿!确实很适合一定人群的使用需求!其他更多相关文档可以在本博搜索关键字 vhd 或 native boot,为了方便大家这里提供 imagex 文件的下载:imagex.exe

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