【干貨】BIOS、UEFI、MBR、GPT、GRUB 到底是什么意思?
01 前言
在學(xué)習(xí) Linux 系統(tǒng)啟動原理之前,我們先了解下與操作系統(tǒng)啟動相關(guān)的幾個概念。
02 與操作系統(tǒng)啟動相關(guān)的幾個概念
不管是 Windows 還是 Linux 操作系統(tǒng),底層設(shè)備一般均為物理硬件,操作系統(tǒng)啟動之前會對硬件進(jìn)行檢測,然后硬盤引導(dǎo)啟動操作系統(tǒng),以下是與操作系統(tǒng)啟動相關(guān)的幾個概念。
2.1 BIOS
BIOS(Basic Input Output System),直譯成中文名稱就是"
基本輸入輸出系統(tǒng)"。它是一組固化到主板中一個ROM芯片上的程序,它可以從CMOS中讀寫系統(tǒng)設(shè)置的具體信息。此程序保存著計算機最重要的基本輸入輸出程序、開機后的自檢程序和系統(tǒng)自啟動程序。
簡單來說,BIOS是一個控制電腦中所有輸入輸出的程序,它可以對主板上的鍵盤、鼠標(biāo)、外部接口、頻率、電源、磁盤驅(qū)動器等方面進(jìn)行參數(shù)控制和調(diào)整。

2.2 UEFI
UEFI(Unified Extensible Firmware Interface)則是取代傳統(tǒng)BIOS的,相比傳統(tǒng)BIOS來說,它更易實現(xiàn),容錯和糾錯特性也更強。

傳統(tǒng)BIOS主要支持MBR引導(dǎo),UEFI則是取代傳統(tǒng)BIOS,它加入了對新硬件的支持,其中就有支持2TB以上硬盤。
2.3 MBR與GPT
全新硬盤在使用之前必須進(jìn)行分區(qū)格式化,硬盤分區(qū)初始化的格式主要有兩種,分別為
MBR格式和GPT格式。
2.3.1 MBR
MBR是傳統(tǒng)的分區(qū)表類型,當(dāng)一臺電腦啟動時,它會先啟動主板上的BIOS系統(tǒng),BIOS再從硬盤上讀取MBR主引導(dǎo)記錄,硬盤上的MBR運行后,就會啟動操作系統(tǒng),但最大的缺點則是不支持容量大于2T的硬盤。
如下圖,查詢到小編的磁盤分區(qū)類似為:MBR

查詢方法如下,感興趣的同學(xué)可以查詢下自己電腦的磁盤分區(qū)類型。
1、win+R,輸入diskmgmt.msc,回車,打開磁盤管理器。
2、在磁盤上點右鍵,選屬性。
3、在卷這一頁,可以看到是GTP還是MBR。
2.3.2 GPT
而GPT是另一種更先進(jìn)的磁盤系統(tǒng)分區(qū)方式,它的出現(xiàn)彌補了MBR這個缺點,最大支持
18EB的硬盤,是基于UEFI使用的磁盤分區(qū)架構(gòu)。

目前所有Windows系統(tǒng)均支持
MBR,而GPT只有64位系統(tǒng)才能支持。BIOS只支持MBR引導(dǎo)系統(tǒng),而GPT僅可用UEFI引導(dǎo)系統(tǒng)。正因為這樣,現(xiàn)在主板大多采用BIOS集成UEFI,或UEFI集成BIOS,以此達(dá)到同時兼容MBR和GPT引導(dǎo)系統(tǒng)的目的。
2.3.3 總結(jié)
BIOS+MBR:
這是最傳統(tǒng)的,系統(tǒng)都會支持;唯一的缺點就是
不支持容量大于2T的硬盤。BIOS+GPT:
BIOS是可以使用GPT分區(qū)表的硬盤來作為數(shù)據(jù)盤的,但不能引導(dǎo)系統(tǒng);若電腦同時帶有容量小于2T的硬盤和容量大于2T的硬盤,
小于2T的可以用MBR分區(qū)表安裝系統(tǒng),而大于2T的可以使用GPT分區(qū)表來存放資料。但系統(tǒng)須使用64位系統(tǒng)。UEFI+MBR:
可以把UEFI設(shè)置成
Legacy模式(傳統(tǒng)模式)讓其支持傳統(tǒng)MBR啟動,效果同BIOS+MBR;也可以建立FAT分區(qū),放置UEFI啟動文件來,可應(yīng)用在U盤和移動硬盤上實現(xiàn)雙模式啟動。UEFI+GPT:
如果要把大于2T的硬盤作為系統(tǒng)盤來安裝系統(tǒng)的話,就必須
UEFI+GPT。而且系統(tǒng)須使用64位系統(tǒng),否則無法引導(dǎo)。但系統(tǒng)又不是傳統(tǒng)在PE下安裝后就能直接使用的,引導(dǎo)還得經(jīng)過處理才行。
2.4 GRUB
GRUB(GRand unified bootloader),多操作系統(tǒng)啟動程序。它允許用戶可以在計算機內(nèi)同時擁有多個操作系統(tǒng),并在計算機啟動時選擇希望運行的操作系統(tǒng)。
GRUB可用于選擇操作系統(tǒng)分區(qū)上的不同內(nèi)核,也可用于向這些內(nèi)核傳遞啟動參數(shù)。它是一個多重操作系統(tǒng)啟動管理器,用來引導(dǎo)不同系統(tǒng),如Windows、Linux。Linux常見的引導(dǎo)程序包括LILO、GRUB、GRUB2。如下圖所示為GRUB加載引導(dǎo)流程。

Centos 7 默認(rèn)使用GRUB2引導(dǎo)系統(tǒng)啟動,GRUB2 是基于 GRUB 開發(fā)成更加安全強大的多系統(tǒng)引導(dǎo)程序,最新Linux發(fā)行版都是使用GRUB2作為引導(dǎo)程序。同時GRUB2采用了模塊化設(shè)計,使得GRUB2核心更加精煉,使用更加靈活,同時也就不需要像GRUB分為 stage 1、stage 1.5、stage 2三個階段。
操作系統(tǒng)啟動相關(guān)的幾個概念了解后,明天再跟大家一起探討 Linux 操作系統(tǒng)的啟動流程。
關(guān)注「開源Linux」加星標(biāo),提升IT技能

