2023年11月24日发(作者:)

新一代UEFI BIOS科普和探索

一、UEFI基础知识介绍

越来越多的电脑采用“UEFI BIOS是时候详细讨论一番

UEFI”了。为了大家能看下去,只写重点, UEFI全名“统一的

可扩展固件接口”相对于“Legacy BIOS传统BIOS )有着更

多的优势: 模块化设计 、图形化的界面、更强的兼容性和拓展

性。阅读本系列文章之前推荐首先阅读以下相关文章:

由前面的文章可知,Legacy BIOS会读取磁盘的主引导记录

MBR进而读取“启动文件”最后Windows系统;UEFI BIOS

自动读取“FAT格式的特定分区(通常是ESP分区)”下的可执行

程序(efi格式)efi文件会查找WindowsBCD启动菜单进

而进入系统(简略过程)

UEFI BIOS下,我们可以手工选择FAT分区下的“efi

件”然后进行相关的操作(类似于DOS工具箱),当然也可以手

工选择Windows系统启动所需要的efi文件,从而进入系统。

备注:EFI在使用时通常与UEFI是同义词。EFI指可扩展固件

接口,也即 UEFI 的前身。

二、打造“UEFI虚拟机”以及“EFI SHELL”介绍

UEFI BIOS的电脑并不是所有网友都有,为了让大家都

能体验“UEFI现在将VMware8.0以上的版本即可,这里用的

VMware10打造成“UEFI虚拟机”具体方法:新建虚拟机后,

在虚拟机目录下找到后缀为vmx的文件,使用记事本打开后,

添加一行文字(红色)

-----------------

firmware = "efi"

-----------------

这样你就相当于具备了一台包含UEFI BIOS的电脑,下面介

绍一下“EFI SHELL :一般的电脑“UEFI BIOS”中会自带“EFI

SHELL为了便于理解可以将“EFI SHELL”和“DOS”相类比。EFI

SHELL”其实就是在UEFI环境中的可执行程序efi格式)虚拟

机的“UEFI BIOS”虽然没有进入“EFI SHELL”的选项,但是我们

可以把“EFI SHELL”放到其他地方(例如:优盘),然后在UEFI

环境中运行“EFI SHELL”这个程序!

准备条件:

1.“EFI SHELL” 下载地址:/s/1mgx7qbe

环境下的应用程序 下载地址:

/s/1pJ8q0L9

3.一个FAT32格式的U盘。

操作步骤:

1.新建虚拟机(例如:Windows8 X64,然后将“优盘”添加到虚

拟机中。

2.事先将“”放到U盘的根目录,运行虚拟机,按下“ESC

键”进入虚拟机的“UEFI BIOS

3.点击“Boot Maintenance Manager”进入,如下图所示:

4.点击“Boot from a file”进入下图(下图所选的是我的优盘)

5.选择优盘后,选择根目录下的“”即可进入“EFI

SHELL”。

6.上图即为“EFI SHELL”,类似于“DOS窗口”,当然也有它自己

的命令:

输入 fs1: 表示进入某个磁盘(这里是我的优盘),输入ls表示

显示该目录下的所有文件

(下图可知,U盘中存在App文件夹)

输入 cd App 表示进入App文件夹,再次输入ls列出App

录下的所有文件

运行某个程序,直接输入程序的名称即可。(是不是和DOS

操作差不多?)

三、UEFI引导Windows启动

目前支持UEFIWindowsWindows Vista 64位、

Windows7 64Windows8 32/64Windows Server 2012

现在以Windows 7为例介绍在UEFI环境下是如何启动的仅作

基本层面上的介绍。

UEFI启动Windows必须有一个FAT分区(通常叫做“EFI

统分区”),这个分区中存在引导Windows的文件。开机后自动

查找FAT分区下的“”文件,然后

查找同一分区下的“efiMicrosoftBootBCD”,然后加载“系统

:”,这样就进入了Windows

文件我们也可以在“EFI SHELL”下手动运行。此

在“EFI SHELL”下手动运行FAT分区的“

或“”也可以进入Windows。在UEFI BIOS

我们还可以将efi文件设置为启动项、默认启动项。

上述的分别为32位、64位的UEFI

引导Windows所需要的文件。二者一一对应,因此在64位的

UEFI环境下是无法安装32位系统的。

上面介绍UEFI启动Windows的一个条件是:FAT分区存在

相关文件。并没有说需要GPT磁盘,通常将“UEFI+GPT”联系起

来的一个重要的原因是,“UEFI+MBR”环境下使用Windows

版光盘安装会有提示:基于EFI的系统只能安装到GPT磁盘上

(微软的限制)!

案例:

-------------------------------------------------------------

--------------------------------

现在很多主板都是可以将“UEFI BIOS”和“Legacy BIOS”相互

切换的,因此“UEFI+MBR”的解决方法如下:

解决思路一:先切换到Legacy BIOS,安装系统完毕后再切换到

UEFI BIOS,自己新建一个FAT分区并复制相关文件到此分区

(也可用bcdboot命令行工具)。

解决思路二进入PE(支持UEFI,将Windows安装到硬盘,

然后自己 新建一个 FAT分区并复制相关文件到此分区(也可用

bcdboot命令行工具)。

-----------------------------------------------------------------------------------

----------

四、Windows8和“安全启动”

“安全启动”的英文名“Secure Boot”并不是Windows 8的一

项功能为什么会将Windows 8和“安全启动”联系到一起呢?因

为预装Windows8的品牌电脑都采用UEFI BIOS,大都含有“安

全启动”!那什么是“安全启动”呢?

“安全启动”是一项UEFI协议,在启动操作系统之前只允许加

载“已签名并获得认证”的代码或程序。两个数据库“签名数据库”

和“吊销的签名数据库”中列出了UEFI程序,类似于“白名单”和

“黑名单”!微软可通过“密钥加密密码数据库”中的签署密钥来更

新“白名单”和“黑名单”。

微软通过数据库中的签名程序签署了Windows8系统的“OS

Loader”。OEM厂商将上述三个数据库存储到主板的“NV-RAM

中,从而达到使用“安全启动”来启动Windows8。这也是为什么

预装Windows8的品牌机默认情况下无法安装Windows7的缘

故,不过我们可以在“UEFI BIOS”中禁用“安全启动”。

案例:预装Windows8的品牌机安装其他系统

-----------------------------------------------------------------------------------

-------------

如果在UEFI BIOS环境下必须保证1.操作系统支持UEFI

(前面已介绍);2.操作系统支持“安全启动”。因此安装

Windows7的话必须:s7 64位(满足条件1);2.

UEFI BIOS中禁用“安全启动”(满足条件2)。

备注前面说过UEFI环境下X64架构电脑只能装64位系统,

X86架构电脑只能装32位系统因此预装Windows8 64位的品

牌机X64架构、默认UEFI BIOS想换成32位的Windows

只能切换到Legacy BIOS模式!

-----------------------------------------------------------------------------------

------------

五、“GPT”和“MBR”相互转化

使用Windows原版光盘安装系统,微软规定:必须

UEFI+GPT”或“Legacy+MBR!前面虽然说过“UEFI+MBR”仍可

正常启动系统,但推荐微软规定的方式进行安装,否则会带来麻

烦!微软做此限制必然不是平白无故的!

目前电脑很多都是UEFILegacy共存,二者可以切换。

GPT”和“MBR”代表两种不同的分区方案,此前做过详细的介绍

(参考本系列第1篇文章的链接),这里仅对二者的相互转换做

一下介绍。按照本系列文章,到现在自己应该能做出一个“支持

UEFI/LegacyPE我们可以在PE下使用Diskgenius专业版

将“磁盘分区方案”进行转化。

1.查看自己的硬盘是哪种分区方案右键点击“计算机”-“管理”-“磁

盘管理”-右键点击“磁盘X”。

图为MBR分区

2.进入PE,使用Diskgenius专业版进行转化。

★重要说明:这种转化并不一定“无损转化”,可能会清空整个磁

盘数据。因为二者的分区类型不同:“GPT分区方案”不存在拓展

分区;“MBR分区方案”不能超过4个主分区。

六、预装win8品牌机装“双系统”

前面的文章已经对原理做过详细解说,相信很多网友不看此

文也可完成本文的题目:预装win8品牌机装“双系统”但是为了

添加一些实践操作的介绍,还是有必要介绍一下的。

首先根据前面介绍,推荐微软规定的方式“UEFI+GPT”或

Legacy+MBR本文旨在保留预装正版Windows8的前提下安

Windows7构成双系统,具体原理参考前文。

准备条件:

s7 64 下载地址:

ed2k://|file|cn_windows_7_ultimate

_x64_dvd_|3341268992|7DD7FA757CE6D2DB78B6901F81A6907A|/

2.不小于4G容量的U

3.启动文件 (下载地址:

/s/1sjGtXlN

4.启动菜单修复工具 (下载地址:

/s/1hqDo8RU

s7激活工具 (下载地址:

/s/1o6M5JRW

操作步骤(在虚拟机示范)

1.U盘格式化为FAT32格式,然后将64Windows7 ISO

镜像解压到U盘根目录。

2.将“”复制到U盘根目录efiboot(请自己新建boot

文件夹)

3.Windows8系统下,使用“磁盘管理”分出大于20G的空间来

安装Windows7

4.(★重要)重启电脑,按F12键(示例)进入BIOS设置:禁

用“Secure Boot”。

(有些电脑还需要将OS Optimized Defaults设置为Disabled

OthersCSM Support设置为Yes

5.设置“U盘启动”为第一启动项,按F10保存。

6.之后安装Windows7到指定分区,只需按照提示即可。

7.运行NTBOOTautofix v2.5.7修复启动菜单。

8、激活win7大功告成。

——如果有Windows7原版光盘(自己刻录),直接忽略12

步,并将第5步设置为“光盘启动”!

——有些电脑如果不能自动识别U盘的也没有关系

只需在UEFI BIOS中选择“boot from files”,然后选择U盘中的

即可。

——★重要备注:如果电脑是二代超极本,即小型固态硬盘加上

大型HDD硬盘组合而成的硬盘格式的自带win8 的笔记本,则

此方法不可行,原因在于引导文件无法修复。

七、修复Windows启动文件

在“ Legacy+MBR”环境下,Windows启动时会查找启动文

件(在活动的主分区),然后启动文件查找系统文件进行启动,

这些早就做过详细的介绍(参考:文章) 在“UEFI+GPT”环境

下,关键在于存在“某个FAT分区里面存在启动文件 。通常这

FAT分区叫做“ESP分区”,在引导系统启动方面来看任意的

FAT分区都可(找个U盘都可以),但ESP分区有自己特定的

属性,只不过这些属性对于系统启动来说没有影响而已,但仍推

荐使用规范的ESP分区(Diskginus分区工具可以做到)!

复习一下两种环境下引导Windows8/7启动的过程:

Legacy BIOS→“活动的主分

区”→bootmgr→BootBCD→

UEFI BIOSEFI系统分区(FAT格式的分区)→

efiMicrosoftBootBCD

[备注]Windows8默认启动和上述略有不同(),

可用NTBOOTautofix修改为上述普遍方式。

1.只要我们明白了上述启动的原理,对于安装“双系统”以及修复

启动(菜单)等问题,可以轻松地解决!我们还可以进入

Windows8 PE后,手动进行操作(做好分区并把启动文件复制

到里面即可)。

2.Windows8/7的“C:WindowsSystem32”目录下有个

工具,也可以帮助修复启动的问题。(自动复制启

动文件到相应的分区)

命令如下:bcdboot c:windows /l zh-cn

备注:使用bcdboot /? 查看详细使用参数。