UEFI引导:实际工作原理
Tofloor
poster avatar
woodelf
deepin
2014-04-23 01:31
Author
这是目前我正在着手翻译润色的一篇国外博文,其中详细讲解了UEFI的引导原理细节。

目前我的翻译进度差不多在20%,一来因为我只在工作空闲时候才着手翻译,二来也是因为原文非常长,英文字数大概在1W2。

由于原文中随处可见各种非常口语化的表达,而且作者行文风格比较随意,有时候句子结构就不那么通顺。因此,本文是我在原文基础上进行的翻译+整理。

现在我就先把已完成翻译的其中一部分贴出来供各位参考和建议。有一点可以放心,我是取得原作者完全授权的,我有再发布的权利。

原文的后面还有非常多的讨论,甚至包括gdisk作者也参与了讨论,在后期我可能会把评论内容也整合进去。

还有一点要说明的,因为这并不是商业性质的文档,因此我没有遵循严格的styleguide,翻译时候格式较随意。总之在翻译用词和风格方面有建议的话就随便提吧。最终完成后我打算发布到自己的博客和本论坛。
UEFI引导:实际工作原理

如果你只想阅读短小精炼的文章,那么本文可能不合你的胃口。

可能你已经在互联网上阅读过有关UEFI的大量资料。但是有一些重要事项需要注意:这些资料中的95%都毫无价值。如果你认为你已经对UEFI有所了解,但是如果你的知识来自非权威或非可靠资料,那么你认为你已经了解的知识就不过是一堆误解、谬论、一己之见、信口开河和弥天大谎。因此,你可能应该先把那些东西完全抛掉。

好,准备工作做完了。我主要想讨论引导加载,因为对于大多数人而言,固件在其中扮演的角色至关重要,同时,不少网站也针对这一过程喋喋不休,由此产生很大的误解。

术语

首先,我们了解一些术语。BIOS和UEFI都是计算机的固件类型。BIOS固件(主要)用于IBM PC兼容计算机。UEFI更通用,可用于不属于“IBM PC兼容”类的系统。

你不可能会有“UEFI BIOS”。没人会有“UEFI BIOS”。请不要再说“UEFI BIOS”。BIOS不是所有PC固件的通用术语,它是PC固件的一种特定类型。计算机中包含固件。如果你有一台IBM PC兼容计算机,那么固件几乎肯定就是BIOS或UEFI。如果你在运行Coreboot,那么恭喜,你是个例外。你应该引以为傲。

安全启动(Secure Boot)与UEFI不是同一个概念。请不要将这些术语混淆使用。安全启动(Secure Boot)实际上是UEFI规范的一项可选功能,于UEFI规范版本2.2加入。我们会在稍后详细讨论安全启动(Secure Boot)到底是什么,但是目前而言,只需要记住它和UEFI不同即可。你需要理解安全启动(Secure Boot)和UEFI的概念,并且在任何场合,你都要知道你实际上讨论的是哪一个。我们首先讨论UEFI,然后我们将把安全启动(Secure Boot)作为UEFI的一项“扩展”来进行讨论,因为这就是安全启动(Secure Boot)的本质。

附加历史注释:UEFI不是由Microsoft开发的,也从来不受Microsoft控制。它的前身和基础——EFI,是由Intel开发和发布的。UEFI由UEFI论坛管理。Microsoft是UEFI论坛的成员之一。Red Hat、Apple、每一家主要PC制造商、Intel(显然)、AMD和一长列其他主要和次要硬件、软件和固件公司及组织也都是UEFI论坛的成员。UEFI是一套业已达成广泛共识的规范,其中当然也包含混乱情况(我们稍后会专门讨论其中一部分)。UEFI并不由任何一家公司独裁掌控。

参考资料

如果你确实想了解UEFI,阅读UEFI规范是个不错的方法。这是一件可以轻松完成的事情,不需要向任何人付钱。我不认为阅读这一规范是有生以来的最大乐趣,因为它确实不是。但是阅读这一规范也会让你受益匪浅。你可以在官方UEFI网站上查找这一规范。你需要勾选几个复选框,但是这并不表示要你出卖灵魂。不会有问题的。在我撰写本文时,UEFI规范的当前版本是2.4 Errata A,本文所写内容也基于这一版本。
Reply Favorite View the author
All Replies
xliang9550
deepin
2014-04-23 02:22
#1
承蒙指教。
Reply View the author
136******54
deepin
2014-04-23 02:30
#2
woodelf 提供的都是干货,学习了
Reply View the author
yeser
deepin
2014-04-23 03:01
#3
大开眼界,一直以为是微软弄的。
Reply View the author
xingtianduiyue
deepin
2014-04-23 03:27
#4
这是目前我正在着手翻译润色的一篇国外博文...
能否给下原博客的链接,也想看看
Reply View the author
isunny
deepin
2014-04-23 05:35
#5
我木有看楼主原文,但是就这一主题,我想提一个问题,楼主勿怪。

为什么wubi 对deepin叫做deepwin为什么不支持uefi。 ?

如果我在支持uefi的主板,采用uefi+gpt的方案安装win8.1  这种情况下deepwin将无效。

请问这个问题可以解决吗?


我问这个问题是因为wubi可以不用格式化分区,或者在有些情况下不能格式化分区的情况下,依然可以用Linux。
Reply View the author
woodelf
deepin
2014-04-23 06:33
#6
[quote]这是目前我正在着手翻译润色的一篇国外博文...
能否给下原博客的链接,也想看看[/quote]
在这里:https://www.happyassassin.net/2014/01/25/uefi-boot-how-does-that-actually-work-then/,原文很长,后面的评论内容也非常值得一看。
Reply View the author
woodelf
deepin
2014-04-23 06:38
#7
我木有看楼主原文,但是就这一主题,我想提一个问题,楼主勿怪。

为什么wubi 对deepin叫做deepwin为什么不支持uefi。 ?

如果我在支持uefi的主板,采用uefi+gpt的方案安装win8.1  这种情况下deepwin将无效。

请问这个问题可以解决吗?


我问这个问题是因为wubi可以不用格式化分区,或者在有些情况下不能格式化分区的情况下,依然可以用Linux。
如果你透彻理解一下wubi的本质就很容易得出结论了。
从Windows 7开始,Windows就支持从VHD启动了,wubi的原理也类似,把系统封装在一个动态扩展的虚拟磁盘文件中,然后向MBR中的BCD添加从这块虚拟磁盘引导的菜单项,实现双启动。
由于wubi添加启动项的方式是改写BCD,因此不适用于UEFI,到了UEFI下面自然无效。
Reply View the author
myq1991
deepin
2014-04-24 15:10
#8
刚刚看了一下原文,作者写的确实比较口语化,楼主翻译辛苦啦
Reply View the author
sigejek
deepin
2014-04-24 16:13
#9
这个adanw简直太口语化了。
不过人家开篇就说了“又到了阿蛋我吹水的时间了(It’s AdamW Essay Time again)”。
但能把枯燥无味的专业文章写的妙趣横生、轻松易读,实属不易。
Reply View the author
xliang9550
deepin
2014-04-25 05:22
#10
很多自然科学期刊的大牛约稿Review也比较口语化。
Reply View the author