2023年11月24日发(作者:)
新一代UEFI BIOS科普和探索
一、UEFI基础知识介绍
越来越多的电脑采用“UEFI BIOS”,是时候详细讨论一番
“UEFI”了。为了大家能看下去,只写重点, UEFI全名“统一的
可扩展固件接口”,相对于“Legacy BIOS”(传统BIOS )有着更
多的优势: 模块化设计 、图形化的界面、更强的兼容性和拓展
性。阅读本系列文章之前推荐首先阅读以下相关文章:;
;。
由前面的文章可知,Legacy BIOS会读取磁盘的主引导记录
“MBR”,进而读取“启动文件”最后Windows系统;UEFI BIOS会
自动读取“FAT格式的特定分区(通常是ESP分区)”下的可执行
程序(efi格式),efi文件会查找Windows的BCD启动菜单进
而进入系统(简略过程)。
在UEFI BIOS下,我们可以手工选择FAT分区下的“efi文
件”然后进行相关的操作(类似于DOS工具箱),当然也可以手
工选择Windows系统启动所需要的efi文件,从而进入系统。
备注:EFI在使用时通常与UEFI是同义词。EFI指可扩展固件
接口,也即 UEFI 的前身。
二、打造“UEFI虚拟机”以及“EFI SHELL”介绍
含UEFI BIOS的电脑并不是所有网友都有,为了让大家都
能体验“UEFI”,现在将VMware(8.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启动
目前支持UEFI的Windows有Windows Vista 64位、
Windows7 64位、Windows8 32/64位、Windows 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”仍可
正常启动系统,但推荐微软规定的方式进行安装,否则会带来麻
烦!微软做此限制必然不是平白无故的!
目前电脑很多都是UEFI和Legacy共存,二者可以切换。
“GPT”和“MBR”代表两种不同的分区方案,此前做过详细的介绍
(参考本系列第1篇文章的链接),这里仅对二者的相互转换做
一下介绍。按照本系列文章,到现在自己应该能做出一个“支持
UEFI/Legacy的PE”,我们可以在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格式,然后将64位Windows7 ISO
镜像解压到U盘根目录。
2.将“”复制到U盘根目录efiboot(请自己新建boot
文件夹)。
3.在Windows8系统下,使用“磁盘管理”分出大于20G的空间来
安装Windows7。
4.(★重要)重启电脑,按F12键(示例)进入BIOS设置:禁
用“Secure Boot”。
(有些电脑还需要将OS Optimized Defaults设置为Disabled或
Others;CSM Support设置为Yes)
5.设置“U盘启动”为第一启动项,按F10保存。
6.之后安装Windows7到指定分区,只需按照提示即可。
7.运行NTBOOTautofix v2.5.7修复启动菜单。
8、激活win7大功告成。
——如果有Windows7原版光盘(自己刻录),直接忽略1、2
步,并将第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 BIOS→EFI系统分区(FAT格式的分区)→
→efiMicrosoftBootBCD→
[备注]:Windows8默认启动和上述略有不同(),
可用NTBOOTautofix修改为上述普遍方式。
1.只要我们明白了上述启动的原理,对于安装“双系统”以及修复
启动(菜单)等问题,可以轻松地解决!我们还可以进入
Windows8 PE后,手动进行操作(做好分区并把启动文件复制
到里面即可)。
2.在Windows8/7的“C:WindowsSystem32”目录下有个
工具,也可以帮助修复启动的问题。(自动复制启
动文件到相应的分区)
命令如下:bcdboot c:windows /l zh-cn
备注:使用bcdboot /? 查看详细使用参数。
发布评论