虚拟化 频道

从UFD启动和运行Hyper-V R2实战

  【IT168 应用技巧】以下内容节选自我刚撰写的一篇文章,当然其中主要的操作步骤参考了TechNet Librarys,所以分享出来并无大碍!这篇日志旨在希望能以更小化的改变当前服务器的环境,来评估或实施Hyper-V。所以我们可以选择免费的Hyper-V Server 2008 R2,并使其从 USB Flash Drive(俗称:U盘)启动运行。

  要实现这一目标,制作好一个承载Hyper-V Server 2008 R2运行的U盘,我们需要事先准备一个支持USB2.0规范的U盘,建议16G容量,和一份Hyper-V Server 2008 R2的安装源文件(install.wim),并在当前工作环境下安装WAIK。注意当前工作环境强烈推荐Windows 7或Windows Server 2008 R2。而目标服务器必须满足CPU支持64位(x64) 、U盘引导(Boot from USB)、硬件虚拟化(Hardware-assisted Virtualization)以及硬件数据执行保护(Hardware-enforced Data Execution Prevention)。

  第一步,创建一个VHD。利用diskpart命令创建一个用于存储Hyper-V Server 2008 R2的VHD文件,容量为12G,采用固定磁盘类型,并创建一个主分区,使用NTFS格式,并将其挂载到当前系统中分配盘符为R,卷标为HyperV。为此,在当前系统中的CMD环境下执行如下命令行:

  mkdir c:\hvvhd

  diskpart

  create vdisk file=c:\hvvhd\hyperv.vhd maximum=12000 type=fixed

  sel vdisk file=c:\hvvhd\hyperv.vhd

  attach vdisk

  create partition primary

  assign letter=r

  format quick fs=ntfs quick label=HyperV

  exit

  第二步,利用WAIK提供的imagex.ex命令将Hyper-V Server 2008 R2安装源(Install.wim)中的映像释放到分区R中,完成后将hyperv.vhd从当前系统中卸载。为此,执行如下命令:

  imagex /apply 1 r:

  diskpart

  sel vdisk file=c:\hvvhd\hyperv.vhd

  detach vdisk

  exit

  第三步,准备U盘(UFD),还是通过diskpart命令对U盘进行分区格式化,此外还要将该分区标注为活动分区。命令如下:

  diskpart

  sel disk

  clean

  create partition primary

  active

  format fs=ntfs quick

  assign letter=z

  exit

  第四步,将之前制作好的hyperv.vhd拷贝到U盘上,如果当前工作环境不是Windows 7或Windows Server 2008 R2,则还需要使用WAIK中提供的bootsect命令为U盘标注为可引导。命令行如下:

  copy c:\hvvhd\hyperv.vhd z:

  bootsect /nt60 z: /force /mbr

  第五步,使用bcdboot命令在U盘上为hyperv.vhd中的系统创建引导数据。为此,执行下面的命令行:

  diskpart

  sel vdisk file=z:\hyperv.vhd

  attach vdisk

  exit

  bcdboot r:\windows /s z:

  第六步,上面的5个步骤执行完毕后,这个U盘上的Hyper-V Server 2008 R2 还无法通过U盘引导启动运行,因为VHD Native Boot虽然能够实现从VHD中启动运行操作系统,但是该系统的磁盘缓存文件仍存储在实际磁盘上,而且因为U盘自身的原因,频繁地在U盘上读写数据势必会影响其整体的性能和稳定性,所以我们还需要通过修改注册表禁用这个系统上的磁盘缓存文件。为此,执行下面的命令行:

  reg load HKLM/hyperVTemp r:\windows\system32\config\system

  reg add “HKLM\HyperVTemp\ControlSet001\Control\Session Manager\Memory Management” /v PagingFiles /t REG_MULTI_SZ /d “” /f

  reg delete “HKLM\HyperVTemp\ControlSet001\Control\Session Manager\Memory Management” /v ExistingPageFiles /f

  reg unload HKLM\HyperVTemp

  第七步,从当前卸载Z盘上的VHD文件,完成整个操作。

  diskpart

  sel vdisk file=z:\hyperv.vhd

  detach vdisk

  exit

  最后,我们便可以将该U盘插到硬件满足Hyper-V 需求的服务器上,从U盘引导运行这个Hyper-V Server 2008 R2。

  通过上面的例子,我们可以深入认识和理解微软在虚拟化方面所作出的努力。利用U盘运行的方式,我们只需要修改注册表中“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PnP\PollBootPartitionTimeout”的键值为“30000”,便能够在更大的移动存储设备,如:移动硬盘上面引导运行Windows Server 2008 R2的完整版。目前据我所知有不少ITPro通过eSATA外接移动硬盘在自己的笔记本上运行Windows Server 2008 R2 Hyper-V 来实现相关产品和技术的学习或评估工作。

0
相关文章