UEFI与EFI的区别 GPT分区 MSR分区 科普贴

GPT 分区
       一种由基于 Itanium 计算机中的可扩展固件接口 (EFI) 使用的磁盘分区架构,GPT 分区的优点,它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID(GUID) GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性

EFI(度娘百科)
       EFI,可扩展固件接口英文名 Extensible Firmware Interface 的缩写,是英特尔,一个主导个人电脑技术研发的公司推出的一种在未来的类 PC 的电脑系统中替代 BIOS 的升级方案
:EFI 是以小型磁盘分区的形式存放在硬盘上的,并非在 BIOS 的 FLASH 里面,AMD 平台支持 EFI 的很少,只有高端旗舰产品才有例如 A75
理论上 MacOS 可以装在带 UEFI 的电脑上,但 Mac 机用的是 UEFI V1.X,普通 PC 的 UEFI 是 V2.x,两者不兼容,而且 MacOS 需要苹果机的 SMC 部件,一般 PC 木有这东东

UEFI:
UEFI(统一可扩展固件接口)由 UEFI 论坛统一管理,UEFI 论坛是由芯片组供应商、硬件供应商、系统供应商、固件供应商和操作系统供应商联合组建的一个组织。该论坛负责维护可跨多种 UEFI PC 使用的规范、测试工具和参考实现。Microsoft 是该论坛的董事会成员,该论坛对所有个人和公司开放,加入该论坛无需支付任何费用。
UEFI 为个人计算机定义了下一代固件接口。基本输入和输出系统 (BIOS) 固件最初采用汇编语言进行编程,并使用中断来执行输入/输出操作,在出现之初即确定了 PC 生态系统的基本框架,但是随着计算技术的发展,“现代固件”定义应运而生,以满足下一代平板电脑和设备的需求。
UEFI 旨在定义一种标准通信方式,规范启动过程中操作系统与平台固件之间的通信。在 UEFI 出现之前,在启动过程中主要利用软件中断机制与硬件进行通信。现代 PC 可以在硬件和软件之间更快速、更高效地执行块输入/输出操作,在设计中使用 UEFI 可以发挥硬件的全部潜能。
UEFI 支持模块化固件设计,硬件设计师和系统设计师在为要求更高的现代计算环境设计固件时,具有更高的灵活性。由于输入/输出受到软件中断的限制,UEFI 提出了基于事件的概念,并采用不依赖于体系结构的编码标准。

UEFI 与 EFI 的区别
UEFI 的全称是 Unified Extensible Firmware Interface,中文名字是统一的可扩展固件接口。它定义了一种在操作系统和平台固件之间的接口标准,这种接口是用于使操作系统从预启动的操作环境(如:在系统启动之后,但是操作系统开始运作之前),加载到一种操作系统上,这类操作系统可以是 Windows,或者是 Linux。UEFI 将提供一个明确的在操作系统与开机时启动固定于硬件中的软件平台之间的接口规范。
尽管 UEFI 与 EFI(Extensible Firmware Interface)的叫法不同,但是 UEFI 却不是 EFI 的全面改革,而是它的发展和完善。自从 2000 年 12 月 12 日正式发布 EFI1.02 之后,EFI 一直作为代替传统的 Bios 固件接口的先进标准而存在。英特尔公司一直拥有 EFI 的版权,直到 2007 年,英特尔公司将 EFI 标准的改进和完善工作全权交给 UEFI 论坛(一个非营利性的合作贸易组织,其委员会的委员包括 AMD,美国安迈,苹果,戴尔,惠普,IBM,超微,因特尔,联想,微软,凤凰科技十一个公司)管理。为了强调这一点,才将 EFI 改名为 UEFI,以此来区别这个固件接口标准是由 UEFI 论坛发布的,而不是英特尔公司。既然 UEFI 是 EFI 的改良版,理所当然的,它跟 EFI 肯定存在不同之处。在 UEFI 论坛的成员公司的大力支持和促进下,UEFI 针对 EFI 中的 UGA 协议,SCSI 传输,USB 主件控制还有 I/O 设备方面都作出了改进。而且还添加了网络应用程序接口,X64 绑定,服务绑定等新的内容。更重要的一点,由于 UEFI 是由 UEFI 论坛的所有成员公司共同商讨确定的,所以它能兼容更多的硬件,具有更广泛的通用性。

UEFI 的优点
  1.提供了一个连接操作系统载入程序与固件之间稳定的接口;
2.一个更加强大的启动环境,这对那些系统设置公司来说,具有极大的价值。
3.解决了选择存储的问题。
4.为独立软件开发商和制造商提供了一个清晰的预启动编程环境。
5.延长了传统硬件的使用寿命。

UEFI 的不足之处。
UEFI 在安全问题并没有作出改善。由于 UEFI 的所有程序和代码都集成在主板上的一个闪存芯片中。如果该芯片出现了故障,那么电脑就无法正常启动。而且因为其程序都是用高级语言编写的,与 Bios 使用汇编语言编写并存储在只读存储器相比,更容易受到病毒的攻击和程序代码被改写。因此 UEFI 还是存在很大的安全隐患和稳定性问题
(摘自网络)

:UEFI 以后或将出现在 OMAP 微系统上

AMD 为抗衡 Intel 的 EFI,推出了 Coreboot 引导,此处略做介绍
Coreboot 是一个以 Linux 为基础的开源韧体,它的开发目的在于取代目前市售计算机上都会看到的 BIOS,而且它可以只在开机时运行特定的程序,从而节省系统资源。

mac 的 Uefi 安装请移步黑果板块,引导程序使用 HJmac 大大的 UTD 制作安装 u 盘,mac,Linux,windwos 全部能够引导。

附上 GUID 表 http://de.wikipedia.org/wiki/GUID_Partition_Table

MSR 分区

MSR 分区即 Microsoft 保留 (MSR) 分区。是每个 GUID 分区表 (GPT) 磁盘都要求的分区。

系统组件可以将 MSR 分区的部分分配到新的分区以供它们使用。例如,将基本 GPT 磁盘转换为动态磁盘后,系统分配的 MSR 分区将被用作“逻辑磁盘管理器”(LDM) 元数据分区。

MSR 分区的大小会因 GPT 磁盘的大小不同而发生变化。对于小于 16 GB 的磁盘,MSR 分区为 32 MB。对于大于 16 GB 的磁盘,MSR 分区为 128 MB。MSR 分区在“磁盘管理”中不可见,用户也无法在 MSR 分区上存储或删除数据。

用 WIN8 系统安装版分区时,系统自动划分出“分区 1、2、3”,它们是 Win8 的特有分区。其中 300MB 为恢复区,100MB 为系统分区,128MB 为 MSR 分区。

UEFI 引导系统大致流程见图

UEFI与EFI的区别 GPT分区 MSR分区 科普贴 - R站|学习使我快乐! - 1

UEFI 提供了比 BIOS 更为灵活的引导方式,可在启动阶段加入驱动和程序,甚至在启动服务结束后仍可继续使用先前加载的驱动。
UEFI Images 是 UEFI 定义的、包含可执行代码的一类文件,最显著的特征是包含一个用来定义这段可执行代码格式的 PE/COFF header,这个 header 定义了 Processor Type 和 Image Type。
UEFI Images 依据驻留内存的能力可分成两大类:
1>, UEFI Applications 其中,UEFI OS Loader 是一种特殊类型的 Application
2>, UEFI Drivers 又分为:UEFI Boot Service Drivers(系统启动后立即停止)和 UEFI Runtime Drivers(系统启动后仍可继续运行)
具体到 win8X64 中,大致流程为:开机-->读取 bootmgfw.efi(USB 媒体下为 bootx64.efi)位置并加载-->根据 BCD 文件列表选择操作系统-->加载对应位置的 winload.efi
全过程不需要像传统 BIOS 那样从硬盘第一扇区读取特殊信息,普通用户完全不了解这些,UEFI 更为人性化

MBR 硬盘结构:
UEFI与EFI的区别 GPT分区 MSR分区 科普贴 - R站|学习使我快乐! - 2

在 diskpart 中利用 set id=ef 可以在 mbr 硬盘建立 EFI 分区,格式为 FAT32
MBR 位于硬盘的 0 柱面,0 磁头,1 扇区,被称为主引导程序.
它由三个部分组成:主引导程序,硬盘分区表 DPT(Disk Partition table)和硬盘有效标志(55AA).
在总共 512 字节的主引导扇区里主引导程序(boot loader)占 446 个字节,
第二部分是 Partition table 区(分区表),即 DPT,占 64 个字节,硬盘中分区有多少以及每一分区的大小都记在其中.
第三部分是 magic number,占 2 个字节,固定为 55AA。分区表它的位置起始于 MBR 的 446(0x1BE)个字节的位置,终止于 510(0x1fd)个字节的位置.每个分区是 16 个字节,最多有 4 个分区
LBA 的寻址方式可以让我们支持 2TB,这是因为分区相对起始扇区号(分区项 08-11 个字节)和分区最大扇区数(分区项 12-15 个字节)的位数都是 32bit.也就是 0xFFFFFFFF*512/1024/1024/1024=2048GB。

GPT 硬盘结构:
UEFI与EFI的区别 GPT分区 MSR分区 科普贴 - R站|学习使我快乐! - 3
GPT 硬盘在“保护 MBR”450 字节偏移处设置“EE”标志标明本硬盘为 GPT
查看扇区详细二进制信息可以使用 BOOTICE 工具

关于 EFI SHELL(EFI 下的外壳程序环境)下预执行文件 startup.nsh 文件编写示例(用途广泛,可用于加载驱动,应用程序等):
echo -off

for %i in 0 1 2 3 4 5 6 7 8 9 A B C D E F
if exist FS%i:\Sct then
#
# Found EFI SCT harness
#
FS%i:
cd Sct

if %efishellmode%. == . then
echo The EFI SCT cannot run in the old shell environment.
goto Done
endif

echo Press any key to stop the EFI SCT running

stallforkey.efi 5
if %lasterror% == 0 then
goto Done
endif

if exist FS%i:\Sct\.passive.mode then
if exist FS%i:\Sct\.verbose.mode then
Sct -c -p mnp -v
else
Sct -c -p mnp
endif
else
if exist FS%i:\Sct\.verbose.mode then
Sct -c -v
else
Sct -c
endif
endif

# load SCRT\SCRTDriver.efi
# SCRT\SCRTApp.efi

goto Done
endif
endfor

:Done

与批处理编写十分相似,详细可用命令可以参照 UEFI SHELL 技术规范 2.0A 版第五章
#####################################################
#####################################################
只需要了解最基本安装启动和原理的可以参考这位无忧前辈的教程:
http://bbs.wuyou.com/forum.php?mod=viewthread&tid=299643&extra=page%3D1
#####################################################
#####################################################
更多 UEFI 技术信息请自行参考英文资料,国内网站各种错误,你懂的~~

Windows

用 DISM 命令修复 Windows 8 系统

2015-4-23 12:10:32

Windows

部署windows8到基于UEFI的计算机的方法总结

2015-4-23 12:30:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
搜索