UEFI 全稱“統一的可擴展固定接口”(Unified Extensible Firmware Interface)。所謂UEFI,實際上就是Intel 當年提出的EFI。相比古老陳舊的BIOS系統,UEFI 擁有諸多優勢,這種接口用於操作系統自動從預啓動的操作環境,加載到一種操作系統上,從而使開機程序化繁爲簡,節省時間。
BIOS作爲電腦開機的最基本引導軟體,使用如今已有25年的歷史了。而在此刻PC的架構將迎來徹底的革新,BIOS的時代即將徹底終結下一代電腦啓動時間僅需數秒。BIOS程序以16位彙編代碼、寄存器參數調用方式、靜態鏈接以及1MB以下內存固定編址的形式存在了十幾年,雖然各大BIOS廠商近年來努力得對其進行改進,加入了許多新元素到產品中,如ACPI、USB支持等,但BIOS的根本性質沒有得到任何改變,16位的運行工作環境是其最爲致命的缺點。BIOS發展到現在,用來存放BIOS程序的芯片最大不過2Mb,換成實際字節就是256KB,面對這個數值,即使你想爲BIOS編寫一些新的功能,BIOS芯片中也不會有足夠的空間讓你寫入。並且對於現代PC來說,BIOS需要很長的時間進行預熱檢測。這也是BIOS這十幾年來一直停滯不前的原因之一。
BIOS的最新替代品,UEFI將會電腦市場中佔有主導位置。
UEFI的發展史
EFI的出現第一次被正式提出,是在2000年的Intel春季IDF(Intel Developer Forum)上,由Inetl提出的標準,經過幾次修訂,現在已經到了EFI 1.10版,而2.0版正由UEFI這個組織制定中(故EFI也現稱爲UEFI)。從某個角度來講,Intel在當時推出EFI主要爲將來電腦固件能兼容於各種不同架構平臺佈局;例如EFI可運用在Itanium、Pentium甚至XScale平臺上。最初,共同發展EFI的業者包括Intel、AMI和臺灣業者Insyde,後來由於EFI確實具有足夠的前瞻性,產業間成立了UEFI(Unified EFI)論壇,共同開發適用於各平臺的PC固件標準。基本上,UEFI是基於原有的EFI 1.10爲基礎,正在進行UEFI 2.0的制定工作。
對比採用傳統BIOS引導啓動方式,UEFI BIOS減少了BIOS自檢的步驟,節省了大量的時間,從而加快平臺的啓動。
MBR 與 GPT
Legacy BIOS模式使用的是MBR來記錄分區,而UEFI BIOS模式使用的GPT來記錄分區。
MBR:主引導記錄(Master Boot Record,縮寫:MBR),又叫做主引導扇區,是計算機開機後訪問硬盤時所必須要讀取的首個扇區,它在硬盤上的三維地址爲(柱面,磁頭,扇區)=(0,0,1)。
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 的系統上的引導卷。
目前UEFI啓動模式支持長64位系統,32位系統不被支持。在UEFI BIOS中,爲了兼容以前的操作系統,還提供了Legacy BIOS模式,以G480 BIOS爲例:
在此模式下,傳統的MBR引導方式的系統,可以正常安裝系統,在安裝需要以GPT分區的系統時,就會提示無法安裝。
此模式下,引導方式爲UEFI,與上一種模式相反。
目前,大家使用的機器可能都比較老,可能沒有UEFI模式,想要了解2種模式的不同之處,沒有辦法進行測試。不過我們可以使用VMware虛擬機進行測試,來彌補硬件的不足,從VMware 8.0開始,虛擬機已經開始支持UEFI了,只不過需要我們手動來改一下代碼(注意:緊支持64爲系統)。
VMware 8.0、9.0、 10.0都測試過,沒有問題,cpu的虛擬化功能要開啓,否則不能建立64位系統,下面以9.0版本爲例講一下:
首先新建一個虛擬機創建一個新的虛擬機,很大家平時創建虛擬機的步驟是一樣的。
然後,打開虛擬機測存儲位置,找到,vmx文件。
然後再此文件中添加一行代碼,firmware=”efi”到文件中,保存退出。(使用之前建好的64位系統也可以)
開機後進入BIOS,就會發現裏邊的內容和之前不一樣了。(注意windows7系統可能會沒有變化,修改的代碼有時會被改回,firmware=”bios”,解決辦法就是關閉虛擬機,重新修改.vmx文件,以管理員身份運行就不會有問題了)
修改啓動順序時,就會發現都是啓動項裏都是EFI開頭的,這個模式下,無需修改任何參數,就可以像真機一樣使用U盤來安裝操作系統,不用再在把u盤做成虛擬機的硬盤了,直接可以引導。大家會發現,我這界面裏第一項是CentOS,這是因爲已經安裝好了操作系統,虛擬機會自動把EFI分區添加到啓動項裏,並識別硬盤中的操作系統。
掛上系統鏡像,就可以安裝系統了。在分區的時候按照以往的自定義形式分區,就會發現無法進行下一步,系統會提示你沒有創建EFI分區(“You have not created a /boot/efi partition”)。
這時,重新分區,建立一個efi分區,大小200MB就可以了,再小一點也沒關係,只要夠放啓動文件就OK了。
如果是全新的硬盤直接下一步,就可以安裝了,系統會自動白硬盤改成GPT形式,如果是使用過的硬盤,可能就會出現sda必須修改GPT標籤(“sda must have a GPT disk lable”)。
這時候我們需要使用parted命令,來修改GPT標籤,fdisk命令已經無能爲力了。按“Ctrl+Alt+F2”進入命令行,輸入parted,如果有多塊硬盤,要用select來選擇硬盤,默認是sda,然後輸入mklabel gpt(改成傳統的MBR模式輸入mklabel msdos),然後輸入yes,就執行了,quit退出,如果有有分區,先全部刪除,在修改標籤。之後用快捷鍵返回圖形界面,先後退一下,在繼續進行安裝,否則系統還會提示要修改標籤。之後就和大家平時安裝的步驟一樣了。
此外EFI該模式下,還提供了EFI shell,幫助大家用命令來排除問題。這個大家就自己研究吧。
安裝windows系統時,也類似這樣操作,windows下一般只要全部分區都刪除掉,系統會自動創建EFi分區並修改標籤,當然也有例外的時候,這就需要我們手動去處理了。
此時我們需要按SHIFT+F10鍵進入CMD模式,使用DISKPART磁盤工具,將MBR分表區轉爲GPT模式,select disk 0,選擇0號磁盤,list disk,列出系統擁有的磁盤,list partition,列出磁盤上的分區,clean,清除磁盤,該命令會抹去磁盤上所有數據,convert gpt將磁盤從MBR轉換爲GPT。Convert basic,-將磁盤從動態轉換爲基本convert dynamic,將磁盤從基本轉換爲動態convert gpt將磁盤從MBR轉換爲GPT,convert mbr將磁盤從GPT轉換爲MBR。
具體操作命令如下:
(注意,更改分區模式硬盤裏的數據會全部丟失,請提前備份好數據再進行此操作)
操作完成,關閉此命令提示符窗口,繼續按照正常的方法安裝Windows系統即可。
以後使用UEFI模式引導的主板會越來越多,硬盤空間越來越大,像提供視頻類服務的公司,服務器很需要大於2TB的分區,UEFI+GPT的大數據時代已經來臨,大家都提前學習一下吧。