设为首页 收藏本站
查看: 727|回复: 0

[经验分享] How to boot native VHD for Windows Server 2012 R2 preview on UEFI

[复制链接]

尚未签到

发表于 2018-6-11 07:44:58 | 显示全部楼层 |阅读模式
      好多年前,应景写过如何制造一个包含Windows 8或者Windows Server 2012的VHD,并且在Windows 7或者Windows 8环境中直接启动到VHD中的系统。   换了一家公司后,一直忙于学习新的系统,但仍然关注Windows的进展。时间总是过得很快,感觉还是不久以前给全国的合作伙伴讲Windows Server 2012,转眼间Windows 8.1 Preview / Windows Server 2012 R2 Preview 就已经出来了。Windows 8.1也就罢了,Windows Server 2012 R2 还是有不少新特性可以看看的,以后有机会可以另起一贴介绍。
  言归正传,介绍一下如何创造一个可以直接启动的Windows 8.1 / Windows Server 2012 R2的VHD。
  之前用的是WIM2VHD.wsf,这是一个把WIM文件转化为VHD文件的脚本,我在几年前介绍过如何完成这一工作,有兴趣可以搜索我之前的Blog。
  但是问题在于,这个脚本当年是为Windows 7 / Windows Server 2008写的,而正如我几年前写的,Windows 8 的 Boot Manager重写了,所以使用这个脚本做出来的VHD是无法启动的,必须手动传送一个启动环境给VHD上的系统。具体作法请搜我之前写的内容中bcdboot命令行。
  
    为了解决这一问题,我之前写了一个脚本程序,用于自动挂载VHD磁盘,自动完成传送工作。好消息是,现在这个脚本更新了,变成了一个PowerShell脚本,叫做Convert-WindowsImage.ps1,有关的信息可以在这里查到:http://gallery.technet.microsoft.com/scriptcenter/Convert-WindowsImageps1-0fe23a8f
  具体作法我就不废话了,站点上都写得很明白。我想介绍的是在我的 UEFI 启动环境中,出现的问题和解决的办法。
DSC0000.png

  第一个问题,也许你会发现这个PowerShell 脚本无法运行。这需要修改PowerShell的运行策略,可以参考图中命令行。此外,由于这个脚本是从网站上下载过来的,NTFS会记录其文件属性,因此运行时会给出安全提示。
  第二个问题,你会发现运行脚本时,在修改bootmgr的时候,提示找不到BCD Store。(ERROR : Could not get the BootMgr object from the Virtual Disks BCDStore.)这个问题是由于UEFI启动环境的目录与传统BIOS方式的不一样,不是boot,而是efi\microsoft\boot,所以脚本会找不到bcd文件,即bcd store。原本想改写一下这位兄弟的PowerShell脚本,但一直真的忙死了,还是在他页面上留几句话算了。
  第三个问题,我使用了EasyBCD来添加启动项,但是发现选择启动项无法启动到VHD的操作系统。这是由于使用了UEFI系统,而默认添加的启动项所使用的加载路径是\Windows\System32\winload.exe,需要把它改成\Windows\System32\winload.efi。
  使用支持UEFI的Windows 8启动环境的好处是,看上去漂亮多了。
DSC0001.jpg

  你可以看到更多的启动选项,他们是由硬件 UEFI 提供的启动选项。在这里,我又遇到两个问题。
  第一个问题,我点击了EastBCD的Save。实际上,你不点击这个按键,添加的记录也会在。点击了以后,漂亮的UEFI的选项界面不见了,回到了Windows 7以前的字符界面。把美丽的UI还给我!尝试了很久,从重新传送启动文件,到替换bootmgr,都没有用。最后发现,你可以关掉displaybootmenu,终于,美丽的UI又出现在我眼前。要是有个办法可以让妹纸也重新出现在我眼前多好啊!
  第二个问题,新加的启动项一般在最后。以前的字符界面还好,内容不多。可是现在图形的启动选项有10几个,你确定每次都有耐心翻到最后?一个字,改!分析了一下,其实也很容易,重新填写displayorder参数就可以了。标记,粘贴到写字板,按照启动项对应的标识符,调整顺序,再贴回命令行,搞定。
  Windows 启动加载器               
-------------------                 
标识符                  {40a7c004-f7af-11e2-b9f8-dd44c2d22392}                 
device                  vhd=[D:]\e00e1972-d07b-4e8f-b17b-e7e716022811.vhdx                 
path                    \Windows\system32\winload.exe                 
description             Windows Server 2012 R2 Preview                 
locale                  en-US                 
osdevice                vhd=[D:]\e00e1972-d07b-4e8f-b17b-e7e716022811.vhdx                 
systemroot              \Windows                 
detecthal               Yes
  C:\Windows\system32>bcdedit /set {40a7c004-f7af-11e2-b9f8-dd44c2d22392} path \Wi                  
ndows\system32\winload.efi                  
操作成功完成。
  C:\Windows\system32>bcdedit /set {bootmgr} displayorder {current} {40a7c003-f7af                  
-11e2-b9f8-dd44c2d22392} {40a7c004-f7af-11e2-b9f8-dd44c2d22392} {9f012074-9b60-1                  
1e2-86c8-f078a4898bea} {9f012075-9b60-11e2-86c8-f078a4898bea} {9f012076-9b60-11e                  
2-86c8-f078a4898bea} {9f012077-9b60-11e2-86c8-f078a4898bea} {9f012088-9b60-11e2-                  
86c8-f078a4898bea} {9f012085-9b60-11e2-86c8-f078a4898bea} {9f012089-9b60-11e2-86                  
c8-f078a4898bea} {9f012083-9b60-11e2-86c8-f078a4898bea} {9f01208c-9b60-11e2-86c8                  
-f078a4898bea} {9f012086-9b60-11e2-86c8-f078a4898bea} {9f012087-9b60-11e2-86c8-f                  
078a4898bea} {9f01208b-9b60-11e2-86c8-f078a4898bea} {9f012084-9b60-11e2-86c8-f07                  
8a4898bea} {9f01208a-9b60-11e2-86c8-f078a4898bea} {9f01207b-9b60-11e2-86c8-f078a                  
4898bea} {9f01207c-9b60-11e2-86c8-f078a4898bea}


  最后,放一下我的BCD的最终版……
  C:\Windows\system32>bcdedit   Windows 启动管理器               
--------------------                 
标识符                  {bootmgr}                 
device                  partition=\Device\HarddiskVolume2                 
path                    \EFI\Microsoft\Boot\bootmgfw.efi                 
description             Windows Boot Manager                 
locale                  en-US                 
integrityservices       Enable                 
default                 {current}                 
resumeobject            {8ee0377a-9ada-11e2-bec5-806e6f6e6963}                 
displayorder            {9f012074-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012075-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012076-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012077-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012088-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012085-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012089-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012083-9b60-11e2-86c8-f078a4898bea}                 
                        {9f01208c-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012086-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012087-9b60-11e2-86c8-f078a4898bea}                 
                        {9f01208b-9b60-11e2-86c8-f078a4898bea}                 
                        {9f012084-9b60-11e2-86c8-f078a4898bea}                 
                        {9f01208a-9b60-11e2-86c8-f078a4898bea}                 
                        {9f01207b-9b60-11e2-86c8-f078a4898bea}                 
                        {9f01207c-9b60-11e2-86c8-f078a4898bea}                 
                        {current}                 
                        {40a7c003-f7af-11e2-b9f8-dd44c2d22392}                 
                        {40a7c004-f7af-11e2-b9f8-dd44c2d22392}                 
timeout                 5                 
displaybootmenu         No
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012074-9b60-11e2-86c8-f078a4898bea}                 
description             Setup
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012075-9b60-11e2-86c8-f078a4898bea}                 
description             Boot Menu
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012076-9b60-11e2-86c8-f078a4898bea}                 
description             Diagnostic Splash Screen
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012077-9b60-11e2-86c8-f078a4898bea}                 
description             Lenovo Diagnostics
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012088-9b60-11e2-86c8-f078a4898bea}                 
description             USB HDD
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012085-9b60-11e2-86c8-f078a4898bea}                 
description             ATA HDD0
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012089-9b60-11e2-86c8-f078a4898bea}                 
description             PCI LAN
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012083-9b60-11e2-86c8-f078a4898bea}                 
description             USB CD
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f01208c-9b60-11e2-86c8-f078a4898bea}                 
description             USB FDD
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012086-9b60-11e2-86c8-f078a4898bea}                 
description             ATA HDD1
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012087-9b60-11e2-86c8-f078a4898bea}                 
description             ATA HDD2
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f01208b-9b60-11e2-86c8-f078a4898bea}                 
description             ATA HDD3
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f012084-9b60-11e2-86c8-f078a4898bea}                 
description             ATAPI CD0
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f01208a-9b60-11e2-86c8-f078a4898bea}                 
description             ATAPI CD1
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f01207b-9b60-11e2-86c8-f078a4898bea}                 
description             Other CD
  固件应用程序(101fffff)               
-------------------------------                 
标识符                  {9f01207c-9b60-11e2-86c8-f078a4898bea}                 
description             Other HDD
  Windows 启动加载器               
-------------------                 
标识符                  {current}                 
device                  partition=C:                 
path                    \Windows\system32\winload.efi                 
description             Windows 8 Enterprise                 
locale                  en-US                 
recoverysequence        {9f01208e-9b60-11e2-86c8-f078a4898bea}                 
integrityservices       Enable                 
recoveryenabled         Yes                 
osdevice                partition=C:                 
systemroot              \Windows                 
resumeobject            {8ee0377a-9ada-11e2-bec5-806e6f6e6963}                 
bootmenupolicy          Standard                 
hypervisorlaunchtype    Off                 
hypervisordebug         Yes
  Windows 启动加载器               
-------------------                 
标识符                  {40a7c003-f7af-11e2-b9f8-dd44c2d22392}                 
device                  partition=C:                 
path                    \Windows\system32\winload.efi                 
description             Windows 8 Hyper-V                 
locale                  en-US                 
recoverysequence        {9f01208e-9b60-11e2-86c8-f078a4898bea}                 
integrityservices       Enable                 
recoveryenabled         Yes                 
osdevice                partition=C:                 
systemroot              \Windows                 
resumeobject            {8ee0377a-9ada-11e2-bec5-806e6f6e6963}                 
bootmenupolicy          Standard                 
hypervisorlaunchtype    Auto                 
hypervisordebug         Yes
  Windows 启动加载器               
-------------------                 
标识符                  {40a7c004-f7af-11e2-b9f8-dd44c2d22392}                 
device                  vhd=[D:]\e00e1972-d07b-4e8f-b17b-e7e716022811.vhdx                 
path                    \Windows\system32\winload.exe                 
description             Windows Server 2012 R2 Preview                 
locale                  en-US                 
osdevice                vhd=[D:]\e00e1972-d07b-4e8f-b17b-e7e716022811.vhdx                 
systemroot              \Windows                 
detecthal               Yes


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-521984-1-1.html 上篇帖子: 解决Esxi5下安装Windows 8的问题 下篇帖子: Zabbix监控Linux、Windows主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表