• UEFI、BIOS、GPT、MBR等概念的辨析


    (本文转移自本人的旧博客)

    从各个地方包括知乎,Wiki,CSDN搜索到的一些整理,这些概念极易混淆。

    先说互相的关系

    1. BIOS和UEFI是两种固件接口标准
    2. MBR和GPT是两种分区表
    3. Legacy模式和UEFI模式是两种启动模式

    然后说概念

    BIOS

    IBM推出的业界标准的固件接口,存储于主板的ROM/EEPROM/flash中,提供的功能包括:

    开机自检
    加载引导程序(MBR中的,通常是bootloader的第一级)
    向OS提供抽象的硬件接口

    PS:CMOS是PC上的另一个重要的存储器,用于保存BIOS的设置结果,CMOS是RAM。

    UEFI

    Unified Extensible Firmware Interface,架设在系统固件之上的软件接口,用于替代BIOS接口,EFI是UEFI的前称。

    一般认为,UEFI由以下几个部分组成:

    Pre-EFI初始化模块
    EFI驱动程序执行环境(DXE)
    EFI驱动程序
    兼容性支持模块(CSM)
    EFI高层应用
    GUID磁盘分区表(GPT)

    通常初始化模块和DXE被集成在一个ROM中;EFI驱动程序一般在设备的ROM中,或者ESP中;EFI高层应用一般在ESP中。CSM用于给不具备UEFI引导能力的操作系统提供类似于传统BIOS的系统服务。

    MBR分区表

    传统的分区方案(称为MBR分区方案)是将分区信息保存到磁盘的第一个扇区(MBR扇区)中的64个字节中,每个分区项占用16个字节,这16个字节中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目(4个字节)、分区总扇区数目(4个字节)等内容。由于MBR扇区只有64个字节用于分区表,所以只能记录4个分区的信息。这就是硬盘主分区数目不能超过4个的原因。后来为了支持更多的分区,引入了扩展分区及逻辑分区的概念。但每个分区项仍用16个字节存储。

    主分区数目不能超过4个的限制,很多时候,4个主分区并不能满足需要。另外最关键的是MBR分区方案无法支持超过2TB容量的磁盘。因为这一方案用4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB。磁盘容量超过2TB以后,分区的起始位置也就无法表示了。在硬盘容量突飞猛进的今天,2TB的限制早已被突破。由此可见,MBR分区方案现在已经无法再满足需要了。

    GPT分区表

    一种由基于 Itanium 计算机中的可扩展固件接口 (EFI) 使用的磁盘分区架构。与主启动记录(MBR) 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。  

    GUID 分区表 (GPT) 磁盘分区样式支持最大卷为 18 EB(exabytes,1EB=1024PB,1PB=1024TB,1TB=1024GB,1GB=1024MB,1MB=1024KB。18EB=19 327 352 832GB) 并且每磁盘最多有 128 个分区。

    与 MBR 分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。

    Legacy mode

    即通过MBR/BIOS进行引导的传统模式,流程如下:

    BIOS加电自检(Power On Self Test -- POST)。
    读取主引导记录(MBR)。BIOS根据CMOS中的设置依次检查启动设备:将相应启动设备的第一个扇区(也就是MBR扇区)读入内存。
    检查MBR的结束标志位是否等于55AAH,若不等于则转去尝试其他启动设备,如果没有启动设备满足要求则显示"NO ROM BASIC"然后死机。
    当检测到有启动设备满足要求后,BIOS将控制权交给相应启动设备的MBR。
    根据MBR中的引导代码启动引导程序。

    UEFI mode

    UEFI启动不依赖于Boot Sector(比如MBR),大致流程如下:

    Pre-EFI初始化模块运行,自检
    加载DXE(EFI驱动程序执行环境),枚举并加载EFI驱动程序(设备ROM或ESP中)
    找到ESP中的引导程序,通过其引导操作系统。

    易混淆的点

    1. Legacy mode=BIOS + MBR分区表;UEFI mode=UEFI + GPT分区表
    2. GUID并不是针对于GPT的一个名词,在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如注册表项、类及接口标识、数据库、系统目录等对象。
    3. 现在常见的主板都能包括BIOS和UEFI两种标准,并提供两种启动模式
    4. Legacy+MBR模式可以安装任何系统,支持磁盘分区为MBR结构,也就是说必须要有主分区,且主分区必须要有系统;而UFEI+GPT只支持64位系统,磁盘分区必须为GPT结构,也就是说esp分区必须有引导文件。
    5. win7在使用UEFI启动安装时会出现很多问题,但是并非不能安装
  • 相关阅读:
    [论文阅读]VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION(VGGNet)
    VMware虚拟机 Ubuntu 实用技巧 (1) -- 安装VMware Tool
    python 开发技巧(4)-- 用PyCharm实用技巧(我自己常用的)
    python 开发技巧(3)-- 连接mysql 出现错误 ModuleNotFoundError: No module named 'MySQLdb'
    python 开发技巧(2)-- Django的安装与使用
    Linux netstat命令
    RabbitMQ(一):Windows下RabbitMQ安装
    python 开发技巧(1)-- 用PyCharm安装第三方库
    Swoole系列(三):建立TCP服务器并发送数据测试
    Swoole系列(二):安装
  • 原文地址:https://www.cnblogs.com/molinchn/p/13228052.html
Copyright © 2020-2023  润新知