文章目录
前言
我们在做Windows平台相关的自动化测试的时候,避免不了会涉及到Windows系统和UEFI(即EFI Shell系统)之间的切换,为了实现完全自动化测试和自动化刷写BIOS,如果不是自动化做,我们通常的做法是将EFI shell的启动文件拷贝到格式为FAT32的U盘中,然后重启电脑进入Windows 的BOOT MENU选项列表,然后选择UEFI OS进入EFI shell环境进行相应的操作;但有一些场景需要自动切换和实现自动化测试就需要Windows系统和UEFI自动切换,以下将介绍如何实现。
一、Windows系统和UEFI自动切换的基本原理说明?
Windows系统和UEFI自动切换的基本原理就是启动文件的调用,具体来说就是系统在启动的时候调用的启动文件不同可自由选择进入不同的系统,在进入不同的环境中写对应的脚本进行调用即可,如在Windows系统用.bat脚本和在EFI shell中用.nsh脚本即可。
二、实现步骤相关说明
1.系统引导文件说明
- bootmgfw.efi:Windows默认引导文件,Windows会通过FAT32分区中\efi\microsoft\boot目录下的bootmgfw.efi引导进入Windows系统,bootmgfw.efi是Windows系统自带的。
- uefix64.efi:通过Common EDK编译生成的UEFI Shell文件。
- bootx64.efi:计算器默认引导文件,UEFI BIOS定义计算器会通过FAT32分区中\efi\boot目录下的bootx64.efi文件引导计算器进入各种模式或者系统。例如将bootmgfw.efi更名为bootx64.efi会进入Windows系统,将uefix64.efi更名为bootx64.efi会进入UEFI Shell。
2.在Windows系统中进入系统启动盘的方法说明
- 在Windows系统下运用mountvol F: /S 进入系统启动盘,截图如下,其中图片中的F盘即为系统启动盘显示:
2.进入启动文件截图如下,供参考:
- 在Windows系统下运用mountvol F: /D退出系统启动盘,截图如下:
3.Windows進入UEFI
Windows进入UEFI Shell时,会在Windows中运行win2efi.bat文件,重启后会进入UEFI。
win2efi.bat做了以下两个步骤:
- 将\EFI\Boot\uefix64.efi复制并改名为bootx64.efi。
- 将\EFI\Microsoft\Boot\bootmgfw.efi删除或改名。
4.UEFI進入Windows
UEFI Shell进入Windows时,UEFI Shell会调用efi2win.nsh并重启进入Windows。
efi2win.nsh做了以下两个步骤:
- 将\EFI\boot\Win_bootx64.efi复制并改名为bootx64.efi。
- 将\EFI\Microsoft\boot\Win_bootmgfw.efi复制并更名为bootmgfw.efi。
注意Win_bootx64.efi和Win_bootmgfw.efi都为bootmgfw.efi的备份文件。
5.OS中Windows进入UEFI步骤
Windows进入UEFI Shell
- 创建一个FAT32分区,并在分区里创建EFI\Boot和EFI\Microsoft\boot目录。
- 将此分区设置为活动分区。
- 将编译生成的uefix64.efi文件改名为bootx64.efi,并放在EFI\Boot目录下。
- 将bootmgfw.efi改名为_bootmgfw.efi,并放在EFI\Microsoft\boot目录下。
- 重启计算机进入UEFI系统。
6.OS中UEFI进入Windows步骤
6.1、UEFI Shell进入Windows OS(需重启进入windows)
6.1.1 在UEFI系统里,将_bootmgfw.efi文件改名为bootx64.efi,放在EFI\Boot\目录下。
6.1.2 重启计算机进入Windows系统。
6.2、UEFI Shell进入Windows OS(无需重启进入windows)
6.2.1 在UEFI系统里,将_bootmgfw.efi文件改名为bootx64.efi,放在EFI\Boot\目录下。
6.2.2 直接运行bootx64.efi文件进入Windows系统。
总结
当前各个模块都在追求精益化、自动化、数字化和智能化,以上的方法是作者在实际的应用中运用到的方法解决了在Windows系统中和UEFI Shell环境中实现自动切换,为此应用场景的自动化实现提供了具体的解决方案,希望能够帮助到大家。
感谢大家的点赞收藏转发和关注,谢谢你。