说说UEFI、GPT和Secure Boot

说说UEFI、GPT和Secure Boot
说说UEFI、GPT和Secure Boot

给预装Windows 8的机器换装其他系统,顺便说说

UEFI、GPT和Secure Boot

新出的预装Windows 8的机器,基本都是UEFI+GPT模式的,Windows XP和Windows Server 2003是不支持这种模式引导启动的,安装Windows XP和Windows Server 2003需要改为Legacy+MBR模式引导启动。

而且,预装Windows 8、基于UEFI+GPT模式的机器,是开启了安全启动(Secure Boot)功能的。那么,想给预装Windows 8、基于UEFI+GPT模式的机器换系统,必须关闭安全启动且改为Legacy+MBR模式(安装Windows 7仅关闭安全启动即可)。

给UEFI+GPT模式的新机器换装其他系统所要做的修改:

这里要先说说CSM,CSM全名Compatibility Support Module即兼容性支持模块,是UEFI的一个特殊模块,对于不支持UEFI的系统提供兼容性支持。目前Windows 8完全支持UEFI,64位的Windows 7不完全支持UEFI,因此UEFI BIOS下安装Windows 7必须开启CSM。多数电脑能自动或手动开启,少数电脑则强制关闭CSM。

预装Windows 8的品牌机都采用UEFI BIOS,下面以预装Windows 8品牌机安装Windows 7时的BIOS设置问题具体说一下:

如果在UEFI BIOS环境下,必须保证:1、操作系统支持UEFI;2、操作系统支持“安全启动”,否则需关闭“安全启动”。因此安装Windows 7的话必须:1、Windows 7 64位(满足条件1);2、在UEFI BIOS中禁用“安全启动”(满足条件2)。

注:UEFI环境下X64架构电脑只能装64位系统,X86架构电脑只能装32位系统。因此预装Windows 8 64位的品牌机(X64架构、默认UEFI BIOS)想换成32位的Windows,只能切换到Legacy BIOS模式!

因为Windows 7不完全支持UEFI,装Windows 7不能把BIOS设置为“纯UEFI”,并且必须禁用“Secure Boot”。

设置EFI BIOS:BootMode[UEFI/Legacy],设置为UEFI。

Launch CSM[Enabled/Disabled],设置为Disabled。

LaunchCSM[UEFI/Legacy],设置为UEFI。

(上述设置一般保持默认即可)

设置兼容模式:CSM Support[Yes/No],设置为Yes。

OSOptimized Defaults[Enabled/Disabled],设置为Disabled。

OSOptimized Defaults[Win8 64bit/Others],设置为 Others 。

(上述设置一般和默认相反)

禁用安全启动:Secure Boot[Enabled/Disabled],设置为Disabled。

(上述设置一般和默认相反)

有些电脑强制为“纯UEFI”,

则必须将BIOS设置为Legacy模式才能安装Windows 7,当然这种情况下需要把硬盘重新分区并改为“MBR分区方案”:

设置EFI BIOS:BootMode[UEFI/Legacy],设置为 Legacy 。

LaunchCSM[Enabled/Disabled],设置为 Enabled 。

LaunchCSM[UEFI/Legacy],设置为 Legacy 。

(上述设置一般和默认相反)

设置兼容模式:CSM Support[Yes/No],设置为Yes。

OSOptimized Defaults[Enabled/Disabled],设置为Disabled。

OSOptimized Defaults[Win8 64bit/Others],设置为 Others 。

(上述设置一般和默认相反或无需设置)

禁用安全启动:Secure Boot[Enabled/Disabled],设置为Disabled。

(上述设置一般和默认相反或无需设置)

——具体情况应具体分析,有的电脑将BIOS Mode[UEFI Only/Legacy Support]设置为 Legacy Support ,而把Boot Priority设置为UEFI First也表示“UEFI模式下开启了CSM”。我只安装过几台华硕、联想和ThinkPad,在其他预装Windows 8的电脑上成功安装了其他系统的朋友,欢迎共享你的BIOS设置,若你有其他的见解或发现上述设置中的Bug,欢迎相互交流。

“GPT”和“MBR”相互转换:

微软规定:必须“UEFI+GPT”或“Legacy+MBR”!虽然在实验测试环境中“UEFI+MBR”仍可正常启动系统,但在生产环境中还是推荐以微软规定的方式进行安装,避免带来麻烦!微软做此限制必然不是平白无故的!

使用我们常用的DiskGenius即可进行转换:

UEFI下安装Windows系统:

强烈建议使用Windows原版光盘安装系统,原版系统镜像包含有UEFI引导所必须的文件,而使用其他安装方式,需要手动提取原版光盘镜像相关文件。

安装方式:

1、直接用微软原版光盘引导安装,这个不用多说,是最简单的办法,和平常的“Legacy+MBR”模式下的安装方式一样,安装程序会自动识别“UEFI+GPT”模式并调用相关引导所必须的文件,在界面及安装选项上没啥区别,在硬盘分区时,系统也会自动做出相应的分区。

2、用高版本的UltraISO将原版光盘镜像写入U盘安装,目前新版的UltraISO能够识别原版光盘镜像中UEFI引导所必须的文件并能将其写入U盘。

3、手动提取原版光盘镜像中UEFI引导所必须的文件到U盘安装,具体步骤:

(1)将U盘格式化成FAT32格式;

(2)在U盘建立文件夹\boot,拷入系统镜像相对应的boot.sdi文件;

(3)在U盘建立文件夹\efi\microsoft\boot,拷入系统镜像相对应的bcd文件,在U盘建立文件夹\efi\boot,拷入系统镜像相对应的bootx64.efi 文件;

(4)在U盘建立文件夹\sources,拷入系统镜像相对应的boot.wim和install.wim 文件;

(5)启动机子,选择(UEFI)U盘启动,就进入系统安装进程……

简单说说UEFI、GPT和Secure Boot

UEFI:

传统BIOS的全称是BasicInput Output System,译为“基本输入输出系统”,是电脑主板ROM芯片上的一段代码。按下电源后,计算机会进行加电自检(检测硬件是否正常)、初始化硬件(使硬件按照PC的架构工作)、启动OS Loader加载操作系统(由BIOS读取MBR上的Loader)、向系统及软件提供服务、硬件中断处理(硬件出现错误指令->中断一下->由BIOS提供正确执行结果)。

这里澄清一下BIOS和CMOS的概念,上文说到BIOS是一段“代码”,当属软件范畴;而CMOS(Complementary Metal Oxide Semiconductor)译为“互补金属氧化物半导体”,是主板上的一块RAM芯片,当属硬件范畴,CMOS中存放系统参数。通常有“BIOS设置、CMOS 设置”等不确切的说法,准确的说法应是:通过BIOS设置程序对CMOS参数进行设置。

新一代的电脑主板采用UEFI BIOS,EFI(Extensible Firmware Interfaces,译为可扩展固件接口)的概念最早由Intel提出。

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 的前身。

GPT:

GPT全名Globally Unique Identifier Partition Table Format(GUID分区表),是源于EFI(可扩展固件接口)使用的磁盘分区架构。

MBR磁盘最多允许存在4个主分区,并且支持磁盘最大容量为2TB;而GPT磁盘最多可允许存在128个主分区(在Windows系统中),支持磁盘的最大容量为18EB

(1EB=1024PB=1024*1024TB,即:1048576TB)。每个GPT磁盘都存在Protective MBR,用来防止不能识别GPT分区的磁盘管理工具的破坏。

对于Windows系统来说,GPT分区方案中有两个特殊的分区:MSR分区、ESP分区,前面提到的Protective MBR,在Windows系统中即为MSR分区,是必须存在的一个分区;ESP 分区(非必须存在),是采用UEFI BIOS电脑的系统中,存放启动文件的分区(当然,还有其他文件)。

GPT“优缺点”并存。优点:支持更大的硬盘、更多的分区、单个分区大小更大、每个分区存在GUID、分区表自带备份等。当然,GUID分区表也存在着不足:

部分Windows桌面操作系统对GPT的支持

硬件的发展速度总是令人吃惊的。几个TB的硬盘、EFI BIOS的电脑将会普及,GUID分区方案终将成为主流。

Secure Boot:

Secure Boot即“安全启动”,前面提到,预装Windows 8、基于UEFI+GPT模式的机器,是开启了安全启动(Secure Boot)功能的。其实“安全启动”并不是Windows 8的一项功能,为什么会将Windows 8和“安全启动”联系到一起呢?因为预装Windows8的品牌电脑都采用UEFI BIOS,大都含有“安全启动”!那什么是“安全启动”呢?

“安全启动”是一项UEFI协议,在启动操作系统之前只允许加载“已签名并获得认证”的代码或程序。两个数据库“签名数据库”和“吊销的签名数据库”中列出了UEFI程序,类似于“白名单”和“黑名单”!系统商(如:微软)可通过“密钥加密密码数据库”中的签署密钥来更新“白名单”和“黑名单”。

微软通过数据库中的签名程序签署了Windows8系统的“OS Loader”。OEM厂商将上述三个数据库存储到主板的“NV-RAM”中,从而达到使用“安全启动”来启动Windows 8。这也是为什么预装Windows 8的品牌机默认情况下无法安装其他系统的缘故,需要在“UEFI BIOS”中禁用“安全启动”。

Legacy BIOS环境下,操作系统启动前可加载任意的“OS Loader”:

UEFI BIOS环境下,操作系统启动前只能加载得到认证的“OS Loader”:

Windows在UEFI环境下是如何启动的:

UEFI启动Windows必须有一个FAT分区(通常叫做EFI 系统分区),这个分区中存在引导Windows的文件。开机后自动查找FAT分区下的“efi\Microsoft\boot\bootmgfw.efi”文件,然后查找同一分区下的“efi\Microsoft\Boot\BCD”,然后加载“系统

盘:\windows\system32\winload.efi”,这样就进入了Windows。

bootmgfw.efi文件我们也可以在EFI SHELL下手动运行。此外,在EFI SHELL下手动运行FAT分区的“efi\boot\bootia32.efi”或“efi\boot\bootx64.efi”也可以进入Windows。在UEFI BIOS中我们还可以将efi文件设置为启动项、默认启动项。

上述的bootia32.efi、bootx64.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命令行工具)。

——上面的叙述只是为了更进一步了解UEFI启动Windows的原理,微软作此限制肯定有原因,因此不建议在实体机操作。

实验、测试:打造“UEFI虚拟机”以及“EFISHELL”介绍

含UEFI BIOS的电脑并不是所有网友都有,为了让大家都能体验UEFI,现在将VMware (8.0以上的版本)打造成“UEFI虚拟机”:新建虚拟机后,在虚拟机目录下找到后缀为vmx 的文件,使用记事本打开后,添加一行文字:

firmware = "efi"

这样你就相当于具备了一台包含UEFI BIOS的电脑。

下面介绍一下EFISHELL:一般的电脑UEFI BIOS中会自带EFI SHELL,为了便于理解可以将EFI SHELL和DOS相类比:EFI SHELL其实就是在UEFI环境中的可执行程序(efi格式)。

虚拟机的UEFI BIOS虽然没有进入EFISHELL的选项,但是我们可以把EFI SHELL放到其他地方(如:优盘),然后在UEFI环境中运行EFI SHELL这个程序!

准备条件:

1、EFI SHELL:Shell_2.3.0_X64.rar(需解压)Shell_2.3.0_X64.rar (205.5 KB)

2、UEFI环境下的应用程序:UEFI Apps.rar(需解压)UEFI Apps.rar (735.9 KB)

3、一个FAT格式的U盘

操作步骤:

1、新建虚拟机(例如:Windows 8 X64),然后将“优盘”添加到虚拟机中。

2、事先将解压好的“Shell.efi”放到U盘的根目录,运行虚拟机,按下“ESC”键进入虚拟机的“UEFI BIOS”。

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

4、点击“Boot from a file”进入下图:

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

6、上图即为“EFI SHELL”,类似于“DOS窗口”,当然也有它自己的命令:

输入fs1: 表示进入fs1磁盘

输入ls表示显示该目录下的所有文件

输入cd App 表示进入App文件夹

再次输入ls列出App目录下的所有文件

运行某个程序,直接输入程序的名称即可。

是不是和DOS中操作差不多?UEFI更像是一个微型操作系统。

相关主题
相关文档
最新文档