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