系統開機啓動過程

legacy boot啓動方式,也叫舊的老的啓動方式,那麼Legacy BIOS Boot是如何啓動或引導的?

當系統首次引導時,或系統被重置時,處理器會執行一個位於已知位置處的代碼。這個位置在基本輸入/輸出系統(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加載操做系統內核。ios

結構圖以下:安全

BIOS:閃存,開機自測網絡

MBR:加載第一個扇區數據結構

DPT:硬盤分區架構

PBR:分區引導ide

Bootmgr:調用內核模塊化

EFI Boot 介紹,目前咱們用到的裝機方式爲UEFI模式函數

EFI 的全稱是可擴展固件接口 (Extensible Firmware Interface),它是 Intel 公司爲全新類型的固件體系結構、接口和服務提出的建議性標準。該標準有兩個主要用途:向操做系統的引導程序和某些在計算機初始化時運行的應用程序提供一套標準的運行環境;爲操做系統提供一套與固件通信的交互協議。ui

簡單說,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 七、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 是不被支持的。

相關文章
相關標籤/搜索