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

从各个地方包括知乎,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启动安装时会出现很多问题,但是并非不能安装

UEFI、BIOS、GPT、MBR等概念的辨析的更多相关文章

  1. GPT vs MBR 分区 ,,, Legacy BIOS vs UEFI BIOS

    MBR与GPT两种磁盘分区格式的区别 http://itoedr.blog.163.com/blog/static/120284297201378114053240 GPT Partition Tab ...

  2. BIOS、MBR、UEFI和GPT关系

    很多用户在新买电脑,或是给已有电脑重装系统时都出现过怎么都无法引导U盘安装的情况.究其原因,还是没能搞清楚BIOS.MBR.UEFI和GPT的复杂关系.所以,今天小编就和大家分享一下它们之间的爱恨情仇 ...

  3. UEFI +、GPT 、BIOS 、 MBR的关系

    1.传统的主板就是传统 BIOS,可在使用 MBR 分区表的硬盘(俗称 MBR磁盘,就是传统常用的模式)上安装32或64位操作系统.同时也支持使用 GUID 分区表的硬盘(俗称GPT磁盘),但该硬盘上 ...

  4. BIOS 搭配 MBR/GPT 的开机流程

    鸟哥私房菜书上内容: BIOS 搭配 MBR/GPT 的开机流程 在计算机概论里面我们有谈到那个可爱的BIOS与CMOS两个东西, CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS则是一个 ...

  5. 对“传统BIOS”与“EFI/UEFI BIOS”的基本认识

    硬盘(MBR磁盘)分区基本认识+Windows启动原理 大家常会看到硬盘分区中这样的几种说法:系统分区.启动分区.活动分区.主分区.拓展分区.逻辑分区,MBR.PBR.DPT.主引导扇区等.尤其是看到 ...

  6. UEFI和GPT

    好就没用linux了,这几天在win8笔记本上用虚拟机装了下,也准备装到硬盘上和win8双系统使用,发现一些概念已经跟不上时代了. 一个是在虚拟机中装的时候,分配了虚拟硬盘分区时,提示选择分区表类型, ...

  7. UEFI BIOS Rootkit Analysis

    catalog . BIOS简介 . UEFI BIOS . EFI编程简介 . UEFI Rootkit 1. BIOS简介 BIOS("Basic Input Output System ...

  8. UEFI和GPT下硬盘克隆后的BCD引导修复

    UEFI和GPT下硬盘克隆后的BCD引导修复-Storm_Center http://www.stormcn.cn/post/1901.html 当硬盘引导换成GPT,系统启动也变成UEFI后,如果直 ...

  9. EFI/UEFI BIOS启动

    全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构.它是可扩展固件接口标准的一部分,用来替代BIOS中的主开机纪录分区表.但因为MBR分区表不支持容量 ...

随机推荐

  1. Html视频播放同时获取当前帧下的图片

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. spring boot-controller中的一个方法获取其他方法返回的值

    @RequestMapping("/test") public String getData() { return "redirect:/other";} re ...

  3. [开源] .Net ORM FreeSql 1.8.0-preview 最新动态播报(番号:我还活着)

    写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,在一些人眼里属于重复造轮子:不看也罢.就像昨天有位朋友截图某培训直播发给我看,内容为:"FreeSQL(个人产品),自己玩 ...

  4. 分享一个Flink checkpoint失败的问题和解决办法

    本文来自: PerfMa技术社区 PerfMa(笨马网络)官网 接触Flink一段时间了,遇到了一些问题,其中有一个checkpoint失败导致作业重启的问题,遇到了很多次,重启之后一般也能恢复正常, ...

  5. 【算法•日更•第四十二期】离散傅里叶变换(DFT)

    ▎前言 小编相当的菜,这篇博客难度稍高,所以有些可能不会带有证明,博客中更多的是定义. 我们将要学到的东西: 复数 暴力多项式乘法 DFT 当然,小编之前就已经写过一篇博客了,主要讲的就是基础多项式, ...

  6. JetCache埋点的骚操作,不服不行啊

    阐述背景 缓存是应对高并发绝对的利器,在很多业务场景允许的情况下,都可以使用缓存来提供性能. 既然用了缓存,那对缓存进行监控必不可少.比如缓存加载耗时,新增耗时等. 在 JetCache 中进行埋点操 ...

  7. Vue DevTools 安装应用

    1.https: //github.com/vuejs/vue-devtools  从这上面下载Vue DevTools: 2.npm install(cnpm install) && ...

  8. linux下udev和mdev的使用

    linux下设备文件系统有devfs.udev和mdev这三种. 一.devfs devfs是由Linux 2.4内核引入的,引入时被许多工程师给予了高度评价,它的出现使得设备驱动程序能自主地管理自己 ...

  9. 如何处理遇到的错误-lammps

    一.认清模型——data文件: 二.读懂in文件: 三.当遇到error时,we can do: 1.查错: (1)从out文件中,复制里边的错误信息(copy一部分,不用全部): (2)进入到lam ...

  10. PHP学习中的一些总结(持续更新)

    文件上传部分 在前台的<form>表单中 hidden隐藏域的MAX_FILE_SIZE可以起到实质性的控制作用,即在文件上传之前就可以判断文件的大小,格式为: <form acti ...