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

Windows Mr.R 5年前 (2015-04-23) 8248次浏览 已收录 0个评论 扫描二维码

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技术信息请自行参考英文资料,国内网站各种错误,你懂的~~


QQ㊀群: 240424174;QQ㊁群: 749250816;QQ㊂群: 542382043;
㊄群: 860166303;⑥群: 738134262 ⑦群 750397184
常见问题:1、文件解压请使用Winrar5.5版本以上解压;
2、视频播放有声音无画面,请了解下PotPlayer播放器;
3、回复仍不可见隐藏内容,请使用邮箱注册登录;
R大技术站 , 版权所有,如未注明 , 均为原创,如需转载请注明来源!
喜欢 (3)
[itdiy@qq.com]
分享 (0)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)