UEFI與 Legacy BIOS兩種啟動模式詳解


(1)、 UEFI啟動模式 與 legacy啟動模式

legacy啟動模式: 就是這么多年來PC一直在使用的啟動方式(從MBR中加載啟動程序),UEFI BIOS作為一種新的BIOS自然也應該兼容這種老的啟動方式;

UEFI啟動模式: UEFI BIOS下新的啟動技術。如果你的PC在UEFI啟動模式下預裝了Win8,你會發現有兩個很小的隱藏分區。一個叫ESP(EFI系統分區),另一個MSR(Microsoft保留分區,通常為128MB)。MSR是windows要求的。ESP對UEFI啟動模式很重要,UEFI的引導程序是以后綴名為.efi的文件存放在ESP分區中的,ESP分區采用fat32文件系統。此外,可能還存在一個小分區叫WinRE Tools,這個是win8的恢復分區,體積也很小。所以千萬不要把這三個分區刪了。

因此第一個關鍵問題就是確定自己的啟動模式,方法是進入BIOS,然后你會發現有一項叫"boot mode",選中"UEFI boot"就是UEFI啟動模式,選中"Legacy boot"就是Legacy啟動模式。

(2)、 UEFI啟動模式只支持64位的系統,所以預裝的win8是64位的, Ubuntu(烏班圖)是一個以桌面應用為主的Linux操作系統,也需要64位的。

(3)、 UEFI BIOS 和 Legacy BIOS

我們都知道可以在傳統的bios中調整設備的啟動優先級,UEFI BIOS在UEFI啟動模式下不但可以調整設備的優先級,還可以調整設備中引導程序的優先級,安裝完ubuntu之后,你再進BIOS就會發現多了一個可選擇的啟動項叫ubuntu。此外,UEFI BIOS也引入了一些新的技術,例如Fast boot和secure boot,當然后面一項完全是用來坑爹的。

(4)、 UEFI啟動模式下如何從u盤或移動硬盤引導

只要u盤或移動硬盤上有一個fat32的分區,分區的根目錄下有個文件夾叫EFI,UEFI就會自動去查找相應的啟動文件(.efi)

如果你剛制作了ubuntu(kylin)-13.04-64位的啟動u盤,可以打開它,你會發現分區的文件系統是fat32,確實有一個EFI文件夾,進去看看就是各種.efi引導文件(這里再次強調64位,32位下你是找不到這個文件夾的)。因此現在想制作可啟動的u盤或移動硬盤就簡單了,只需要復制粘貼就行了。

 

Legacy BIOS Boot 是如何啟動或引導的

當系統首次引導時,或系統被重置時,處理器會執行一個位於已知位置處的代碼。這個位置在基本輸入 / 輸出系統(BIOS) 中。CPU 會調用這個重置向量來啟動一個位於閃存/ROM 中的已知地址處的程序。通常,它執行一個啟動自測(POST來檢查機器。最后,它從引導驅動器上的主引導記錄(MBR)加載第一個扇區。

引導程序就位於 MBR 第一個扇區里面。此時引導程序就被裝入 RAM 並執行。這個引導加載程序在大小上小於 512 字節(一個扇區)。BIOS 自檢完成之后,將 MBR 的代碼讀入內存,管理權交給 MBR , MBR 再讀取 DPT ,從 DPT (Disk Partition Table,硬盤分區表占據 MBR 扇區的64個字節(偏移01BEH--偏移01FDH))找出硬盤的所有分區哪一個是激活的主分區。到這里為止,所有系統都是一樣的。下面就有區別了。 DPT讀完找到主分區之后然后找到這個主分區的 PBR (Partition Boot Record分區引導記錄),PBR位於激活主分區的第一個扇區。安裝不同操作系統的時候 PBR 是會被改變的, XP 的 PBR 寫死的代碼是去找 NTLDR 。而 Vista 和 7 的 PBR 里寫進的就是去找 Bootmgr 。

這個時候顯示器上還沒有顯示引導管理器的界面。 Bootmgr 被找到之后管理權就交到了 Bootmgr。 Boot Manager 首先從 BCD 中讀取 Boot Manager 菜單的語言版本信息,然后再調用 BOOTMGR 與相應語言的 BOOTMGR.EXE.MUI 組成相應語言的啟動菜單,之后才會在顯示器上顯示引導管理器,也就是選擇多操作系統的那個文字界面。最后,當你選擇了相應的操作系統,這里是 Win7 或 8 (如果選擇 XP, 會轉入 XP 的啟動流程,找到 XP 的NTLDR 然后啟動), Bootmgr 就去尋找系統分區(系統分區和主分區的概念不是一樣的哦)Windows/System32 下的 Winload.exe 加載操作系統內核。

 

EFI Boot 介紹

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 磁盤引導。

注:哪些系統支持 UEFI 啟動?為什么當前我們不能支持 32bit 的 win8 UEFI 啟動?

目前我們的 BIOS 的 Build 生成是 x64 模式的,因此 32 位的 Win8 UEFI 是不被支持的。

總結:UEFI是新式的BIOS,legacy是傳統BIOS。你在UEFI模式下安裝的系統,只能用UEFI模式引導;同理,如果你是在Legacy模式下安裝的系統,也只能在legacy模式下進系統。UEFI只支持64為系統且磁盤分區必須為GPT模式,傳統BIOS使用INT13中斷讀取磁盤,每次只能讀64KB,非常低效,而UEFI每次可以讀1MB,載入更快。此外,Win8,更是進一步優化了UEFI支持,號稱可以實現瞬時開機。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM