詳解UEFI boot與legacy boot啟動方式、GPT與MBR分區結構
2026-01-26 21:23:41
供稿:網友
隨著新電腦不斷的涌現,現在出現的新名詞是越來越多了,舉個例子 UEFI啟動方式,GPT分區結構等,這些名詞雖然早就出現了,但在前些年是很少被我們提及的,今天筆者在網上收集了關于這些名詞的資料,分享給大家,希望對喜歡裝機需要裝機的朋友有幫助。
PS:本文講述的內容可能枯燥無味,但比較實用,耐心的看完,會讓你茅塞頓開。
legacy boot啟動方式,也叫舊的老的啟動方式,那么LegacyBIOSBoot是如何啟動或引導的?
當系統首次引導時,或系統被重置時,處理器會執行一個位于已知位置處的代碼。這個位置在基本輸入/輸出系統(BIOS)中。CPU會調用這個重置向量來啟動一個位于閃存/ROM中的已知地址處的程序。通常,它執行一個啟動自測(POST)來檢查機器。最后,它從引導驅動器上的主引導記錄(MBR)加載第一個扇區。
引導程序就位于MBR第一個扇區里面。此時引導程序就被裝入RAM并執行。這個引導加載程序在大小上小于512字節(一個扇區)。BIOS自檢完成之后,將MBR的代碼讀入內存,管理權交給MBR,MBR再讀取DPT,從DPT(DiskPartitionTable,硬盤分區表占據MBR扇區的64個字節(偏移01BEH--偏移01FDH))找出硬盤的所有分區哪一個是激活的主分區。到這里為止,所以系統都是一樣的。下面就有區別了。DPT讀完找到主分區之后然后找到這個主分區的PBR(PartitionBootRecord分區引導記錄),PBR位于激活主分區的第一個扇區。安裝不同操作系統的時候PBR是會被改變的,XP的PBR寫死的代碼是去找NTLDR。而Vista和7的PBR里寫進的就是去找Bootmgr。
這個時候顯示器上還沒有顯示引導管理器的界面。Bootmgr被找到之后管理權就交到了Bootmgr。BootManager首先從BCD中讀取BootManager菜單的語言版本信息,然后再調用BOOTMGR與相應語言的BOOTMGR.EXE.MUI組成相應語言的啟動菜單,之后才會在顯示器上顯示引導管理器,也就是選擇多操作系統的那個文字界面。最后,當你選擇了相應的操作系統,這里是Win7或8(如果選擇XP,會轉入XP的啟動流程,找到XP的NTLDR然后啟動),Bootmgr就去尋找系統分區(系統分區和主分區的概念不是一樣的哦)Windows/System32下的Winload.exe加載操作系統內核。
EFI Boot 介紹,目前我們用到的裝機方式為UEFI模式
EFI 的全稱是可擴展固件接口 (Extensible Firmware Interface),它是 Intel 公司為全新類型的固件體系結構、接口和服務提出的建議性標準。該標準有兩個主要用途:向操作系統的引導程序和某些在計算機初始化時運行的應用程序提供一套標準的運行環境;為操作系統提供一套與固件通訊的交互協議。
簡單說,EFI 是 BIOS 的替代者。它為操作系統和固件提供了更加強大、安全、方便的交互途徑。EFI 規范定義的接口,包括數據表包含平臺的信息,可在 OS Loader 和 OS 的啟動和運行時服務。
EFI 固件提供了幾種技術優勢:
引導能力支持大容量磁盤(超過 2 TIB );
更快的啟動;
獨立 CPU 的體系結構;
CPU 的獨立的驅動程序;
靈活的預操作系統環境,包括網絡功能;
模塊化設計;
EFI 啟動還需要一個特殊的分區表,該分區表指向一個特殊的文件。通常情況下該文件位于\EFI 路徑,EFI 啟動涉及到一個寫入到 firmware 中的 boot loader, EFI 并不把啟動程序放置在 MBR 中,firmware 知道如何讀取分區表以及 FAT 的文件格式。EFI 系統分區是用 FAT 格式格式化的特定分區,其中包含 boot loader, 該 boot loader 是 EFI 可執行程序,可被 EFI boot manager 載入和運行。
Boot loader 被設置為一個可以通過固件訪問的文件。Boot loader 允許用戶選擇并加載操作系統。所有的 boot manager 都包含一個 EFI 變量,該變量被用來定義固件配置參數。
MBR與GPT的分區區別
MBR:主引導記錄(Master Boot Record,縮寫:MBR),又叫做主引導扇區,是計算機開機后訪問硬盤時所必須要讀取的首個扇區,它在硬盤上的三維地址為(柱面,磁頭,扇區)=(0,0,1)。
主引導扇區記錄著硬盤本身的相關信息以及硬盤各個分區的大小及位置信息,是數據信息的重要入口。如果它受到破壞,硬盤上的基本數據結構信息將會丟失,需要用繁瑣的方式試探性的重建數據結構信息后才可能重新訪問原先的數據。主引導扇區內的信息是通過分區程序寫入的,它是低級格式化的產物,和操作系統沒有任何關系(操作系統是創建在高級格式化的硬盤分區之上,是和一定的文件系統相聯系的)。
對于硬盤而言,一個扇區可能的字節數為 128×2n (n=0,1,2,3)。大多情況下,取 n=2,即一個扇區(sector)的大小為 512 字節。
MBR 的限制:
在 MBR 分區表中最多 4 個主分區或者 3 個主分區+1 個擴展分區:從主引導記錄的結構可以知道,它僅僅包含一個 64 個字節的硬盤分區表。由于每個分區信息需要 16 個字節,所以對于采用 MBR 型分區結構的硬盤,最多只能識別 4 個主要分區(Primary partition)。
MBR 分區方案無法支持超過 2TB 容量的磁盤。因為這一方案用 4 個字節存儲分區的總扇區數,最大能表示 2 的 32 次方的扇區個數,按每扇區 512 字節計算,每個分區最大不能超過 2TB 。磁盤容量超過 2TB 以后,分區的起始位置也就無法表示了。
GPT:全局唯一標識分區表(GUID Partition Table,縮寫:GPT)是一個實體硬盤的分區結構。GUID 分區表 (GPT) 是作為 Extensible Firmware Interface (EFI) 計劃的一部分引入的。相對于 PC 常用的較舊的主引導記錄 (MBR) 分區方案,GPT 提供了更加靈活的磁盤分區機制。
GPT 使用 GUID 分區表 (GPT) 磁盤分區系統。GPT 磁盤提供了以下好處:
最多允許 128 個分區;主引導記錄 (MBR) 磁盤可以支持 4 個主分區和擴展分區內的 124 個附加分區。
允許大于 2 TB 的卷容量,而 2 TB 是 MBR 磁盤的極限。
由于分區表提供了復制和循環冗余校檢 (CRC) 保護,所以更加可靠。
能在所有基于 x64 平臺上用作存儲卷,包括運行 Windows XP Professional x64 Edition 的平臺。從 Windows Server 2003 SP1 開始,GPT 磁盤也可用作基于 x86 的Windows 平臺上的存儲卷。
可用作基于 x64 的 Windows 7、Windows Vista 和 Windows Server 2008 版本上的引導卷。從 Windows Server 2003 SP1 開始,GPT 磁盤也可用作基于 Itanium 的系統上的引導卷。
注意:Windows 僅支持從包含 Unified Extensible Firmware Interface (UEFI) 引導固件的系統上的 GPT 磁盤引導。
GOP 與 VBIOS 的區別
VBIOS 是計算機圖形卡或集成圖形控制器的 BIOS,類似系統 BIOS 提供了一組軟件所使用的程序函數來訪問系統硬件一樣,VBIOS 也是提供了一組視頻相關的程序使用的函數訪問視頻硬件。通常由顯卡廠商提供一個二進制 Bin 文件給 ODM 廠商,將其包在系統 BIOS 中。
而 GOP (Graphic Output Protocol) driver 是 EFI 架構下取代傳統 VBIOS 黑箱的 EFI driver,它被設計成在操作系統啟動之前支持基本需求的圖形輸出功能。
VBT: Video bios table。VBT 是一個特別制作的客制化過得特殊 binary 數據塊。靠 BMP utility 來編輯。VBT 同樣如同 legacy vbios 一樣記錄了 detail timing、GPIO Pins、Clock 等顯示方面的參數信息。
兩者的不同點:Pre-OS boot 時期,EFI 是通過標準的 GOP protocol 來實現顯示 output。而 lagacy vbios需要通過 INT10 interrupter 來實現。
哪些系統支持 UEFI 啟動?為什么當前我們不能支持 32bit 的 win8 UEFI 啟動?
目前我們的 BIOS 的 Build 生成是 x64 模式的,因此 32 位的 Win8 UEFI 是不被支持的。