https://sspai.com/flipboard/post/64619 👇
传统:按下电源键以后,计算机就会读取嵌入在主板中的固件(好比人的小脑),也就是我们通常所说的「BIOS」:它的全称是 Basic Input / Output System,即「基本输入输出设备」。
发展:随后,由业界多家著名公司共同成立统一可扩展固件接口论坛;将 EFI 统一化便形成了 「UEFI」:全称 Unified Extensible Firmware Interface,即「统一的可扩展固件接口」。它拥有图形化的界面、多样的操作方式以及允许植入硬件驱动等 BIOS 没有的特性,作为BIOS的替代。
1.1 固件为BIOS:
硬件自检--》排名第一位的存储设备(默认硬盘)。「MBR」(Master Boot Record)即「主引导记录」是计算机开机后访问硬盘时所必须要读取的首个扇区。
BIOS + MBR 的启动模式
1.2 固件为UEFI:
完成了硬件自检之后会先读取识别全局唯一标识码分区表,全称: Globally Unique Identifier Partition Table,缩写「GPT」,它是一种比 MBR 更为先进的硬盘分区表结构布局的标准。
UEFI + GPT 的启动模式
2. Boot Loader 和 ESP
在计算机读取识别完 MBR / GPT 后,控制权就要转交给事先安装在某个分区里的「Boot Loader」,即启动引导程序。它能让用户选择启动哪一个操作系统。当用户选择完毕后许会接手初始化硬件、建立内存的映射,以便为选择的操作系统内核准备好正确的软硬件环境。
BIOS:
通过一个活动的主分区下的 Boot Loader 文件导入根目录下 boot 文件夹里的 BCD(启动设置数据)文件,然后 BCD 文件根据自身的配置内容加载系统启动文件。
BIOS 固件计算机操作系统启动流程
UEFI:
使用 UEFI 引导操作系统时,在其规范中:在 GPT 分区表的基础上,规定了硬盘中必须要有一个 EFI 系统分区,即 EFI System Partition,简写为「ESP」。ESP 要基于 FAT 格式,Boot Loader 要放在 ESP 中,且 EFI 启动文件要放在「\EFI\<厂商>」文件夹下;比如 Windows 的 UEFI 启动文件,都在「\EFI\Microsoft」下。
UEFI 固件计算机操作系统启动流程
[GRUB]:
众多 Linux 发行版都使用 GRUB (全称 GNU GRand Unified Bootloader,即大一统启动加载器)作为默认 Boot Loader。安装完 Linux 系统后它便会成为电脑默认的 Boot Loader。除了选择操作系统,它还可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数;同时,它也兼容 Windows 操作系统。当然,如果你觉得它的界面略显「简陋」,你也可以安装不同的主题来调整它的 UI。
*GRUB(GRand unified bootloader),多操作系统启动程序。它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。
使用 GRUB 启动不同系统
注:
Boot Sequence:
BIOS/UEFI自检完成后的下一步操作。进入 BIOS / UEFI 操作界面后,里面有一项就是「设定启动顺序」。为了从 U 盘这类的外部设备读取并安装 Linux 系统,我们需要预先更改它。
Secure Boot:
在 UEFI 的规范中定义了一项名为「Secure Boot」的协议,Secure Boot 只允许载入有数字签名的 EFI 驱动和启动程序,在安装 Linux 前,我们需要关闭它。
Linux 系统的硬盘分区安装规则:
其实所谓「安装」任何一个系统,就是把外置设备内的打包文件解压缩拷贝到该系统所规定的不同特定存储分区中去。好比搬家时把放在箱子里不同的开本的书放进不同柜格的书柜里;只要根据书籍的开本规格先提前买好相应大小柜格的书柜,那么安装这件事便能水到渠成。
那么 Liunx 系统最少需要我们的硬盘上哪几种「柜格」呢?
「/boot」分区:引导区,即我们上文所提到的 ESP 分区,包含了启动引导程序,一般情况格式为 FAT32。
「/」分区:root 分区,也称之为「根」分区或主分区,用于保存系统文件和个人文件,一般情况格式为 ext4;当然你可以再划分一个「/home」分区来存放个人文件分离系统文件。
「Swap」分区:用于存放虚拟内存:在过去内存吃紧的年代,Linux 系统一般会创建一个大小为内存的两倍的 Swap 分区来防止内存不足;如果内存足够大,可以不予考虑。
知识点:
https://qiita.com/YukiMiyatake/items/d3f235db55cf37afc037
BIOS中的UEFI和Legacy启动模式 · 小白装系统教程 · 看云
【干货】BIOS、UEFI、MBR、GPT、GRUB 到底是什么意思? - 知乎
win10 双系统 Ubuntu UEFI+GPT bios+mbr 理论与实践 - 知乎 👇
在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
为了减少分区表损坏的风险,GPT在硬盘最后保存了一份分区表的副本。
在GPT分区表的最开头,出于兼容性考虑仍然存储了一份传统的MBR,用来防止不支持GPT的硬盘管理工具错误识别并破坏硬盘中的数据,这个MBR也叫做保护MBR。
https://www.normalesup.org/~george/comp/live_iso_usb/grub_hybrid.html
https://segmentfault.com/a/1190000020850901👇
UEFI 引导流程
整个
UEFI
的启动详细流程描述如下:
- 开机后,固化在
ROM
里的UEFI BIOS
就会被加载到内存运行。UEFI BIOS
将引导EFI
系统进行运行。- 在
EFI
系统启动后,GUID
分区表就会被识别,之后EFI
系统就会通过.efi
文件启动Boot Loader
程序加载操作系统内核。如下图:
对于分区表格式为
MBR
分区表的磁盘,UEFI
系统会 先启动CSM
兼容模式后按传统BIOS
的步骤加载操作系统的内核。如下图: