LV. 8
GP 186

【問題】UEFI? BIOS? Legacy? 淺談主機板UEFI觀念與迷思

樓主 哥布林 qtt2217
GP335 BP-
Unified  Extensible  Firmware  Interface      (縮寫UEFI)
統一       可延伸        韌體        介面

對使用者來說,使用UEFI最明顯改善就是更快的開機速度,而如果你想了解UEFI,對主機板即將淘汰BIOS的UEFI時代有更好的理解,歡迎觀看這篇文章。
(最快開機速度:UEFI作業系統+Win10快速開機+關閉CSM,10秒內開機。)

你可能已經在網路上閱讀了很多關於UEFI的內容。
這是你應該理解的重要事項:你的認知可能有些誤解,模糊,半真半假!

讓我們先來了解UEFI的歷史
EFI最初的動機來自於20世紀90年代中期第一代英特爾-HP Itanium系統,BIOS限制對於ltanium所針對的大型啟動服務平台來說太過嚴格,為了解決這些問題,
英特爾創造出了一個「Extensible Firmware Interface (EFI)」[可延伸韌體介面]
2005年7月,英特爾停止了1.10版EFI的開發,並將其貢獻給
統一可延伸韌體介面論壇(Unified EFI Forum)推廣與發展,為了突顯這一點,EFI也更名為UEFI(Unified EFI)。所以請不要對那個U有著奇怪解釋。
最初的EFI規範仍由英特爾擁有,英特爾專門為基於EFI的產品提供許可,但UEFI規範由UEFI論壇擁有。


接著一一講解與UEFI有關的功能用語:UEFI、BIOS、CSM、Secure Boot、Legacy BIOS、Boot、GOP、VBIOS、MBR、GPT。


首先,請你不要把BIOS當成BIOS介面或是電腦韌體的代名詞,而是舊時電腦的韌體與介面能稱為BIOS,現今新型式則稱為UEFI,讓我娓娓道來。



1.UEFI:簡單來說就是改良版的BIOS,但UEFI不能稱為BIOS,在新的主機板看到花花綠綠酷炫的圖形化介面,以及可以用滑鼠鍵盤操作的”BIOS”畫面,就是UEFI介面。
(但是也有類似BIOS文字介面的UEFI哦!)
即使你的PC使用術語“BIOS”,你今天購買的新型電腦或主機板肯定會附帶UEFI韌體而不是BIOS。而UEFI對於一般使用者來說最顯著的就是開機速度明顯提升!

很多人混淆的一點,沒有'UEFI BIOS'。沒有人有'UEFI BIOS'。請不要說'UEFI BIOS'。 BIOS不是所有PC韌體的通用用語,它是特定類型的PC韌體。你的電腦有韌體。如果它是IBM PC相容電腦,它幾乎肯定是BIOS或UEFI韌體。如果您正在用Coreboot,恭喜你,Mr.例外,你可能會為自己感到驕傲。 (不過為了方便說明與避免混淆,仍會習慣使用”BIOS”代稱,但請不要認為UEFI是某種BIOS)。

(UEFI架構)



2.BIOS:相信各位對BIOS都不陌生,不熟也沒關係,你在開機時會出現左上角”_”符號閃爍或是開機時會出現按下DEL、F9、F12等等的標語,當你按下那些熱鍵時會進入很多英文的畫面,那就是BIOS的設定介面,其中我們提醒一下與開機有關的東西,英文關鍵字是BOOT


(傳統BIOS)
 

(新式UEFI介面)



3.Boot:開機,是的,當成開機的英文就可以了,首先我們了解到,硬碟剛買來時,硬碟裡面完全都是空的,也就是你不安裝所謂的Windows作業系統的話,是沒辦法開機進去操作的。那如果你有兩顆硬碟怎麼辦呢?
在BIOS裡面,就可以選擇,我要從哪顆硬碟去啟動作業系統,即是所謂的開機選項,Boot Menu
除了從硬碟開機之外,也可以從光碟機開機,USB開機等等,所以Windows光碟與USB啟動Windows就是這個意思,使用儲存裝置內的Windows安裝程式來安裝Windows作業系統到硬碟裡面,或是用儲存裝置內的Windows修復現有破損的Windows作業系統。

所以,到BIOS裡面的Boot menu,如果你有插入USB或是光碟機的話,就會看到有USB、光碟機、硬碟的名字等(不能熱插拔,只能開機前插入)。
而不選擇啟動哪個的話通常都是照順位下去做開機的,也就是說我把光碟機排第一,USB排第二的話,如果光碟機是空的,他就會跳到USB看有無作業系統,如果有,就會開啟了。
而如果想要UEFI啟動,就必須以UEFI模式安裝UEFI作業系統,但UEFI的開機選項不只有裝置順序,還有系統本身哦!

(原生UEFI狀態的開機選項,皆為UEFI開頭)


(UEFI開機可以選擇系統哦!)


(可以看到Boot Menu裡開頭有UEFI字樣與沒有UEFI的SanDisk新帝牌的隨身碟,選擇UEFI就對了。)

**綜上所述,可以得知。 BIOS和UEFI都是電腦的韌體類型。 (大多數情況下)BIOS樣式的韌體只在IBM PC相容電腦上找的到。
UEFI意味著更通用、更高效、更快速,並且可以在不屬於“IBM PC相容”類的系統上找到。



4.CSM: Compatibility Support Module相容性支援模組
主機板改進到UEFI之後,那沒有支援UEFI的顯示卡,硬碟等等硬體怎麼辦呢?這時就需要CSM的出現,他是在UEFI淘汰掉BIOS中的過度功能,模擬傳統BIOS


也就是說在UEFI架構下,透過CSM模擬BIOS來相容只支援BIOS開機的裝置。
也稱為Legacy模式、LegacyMode、Legacy BIOS。
所以如果要安裝純UEFI也就是將CSM給關閉(Disable)。
如果你的電腦沒辦法關掉CSM,那就只能待在UEFI+CSM模式的半UEFI了。
“CSM”有時會錯誤地將此功能稱為“禁用UEFI”,這在說法上是荒謬的。你無法“禁用”系統的韌體。
這只是一個白癡的說法。你要明白說出來時的真正含義。他們說的是使用UEFI韌體啟動系統“模擬BIOS”。
所以當你現在系統是以UEFI+CSM來啟動,你會看到傳統BIOS開機一樣的畫面如:較粗的字體、左上角閃爍”_”符號。

而2020之後消費級主機板將拿掉CSM,也就是新主機板都不能安裝舊系統囉!
 
(CSM開機或UEFI開機選項,有的也會寫Legacy就是UEFI+CSM。)



5.Secure Boot 安全啟動,與UEFI不同。不要互換使用這些用語
安全啟動的核心就是利用數字簽名來確認EFI驅動程序或者應用程序是否是受信任的。   
"安全啟動"設計之初作用是防止惡意軟件侵入。事實上它能夠做到的僅僅是,當電腦啟動器被病毒修改之後,它會給出提醒並拒絕啟動,避免可能帶來的進一步損失。更多的人認為,這是微軟為了防止安裝Windows操作系統的電腦改裝linux。客觀的講,微軟設計Secure_Boot的原本用意可能是出於保證系統安全,但結果似乎成了PC廠商保護市場壟斷,阻礙競爭的一種手段。現在它是可以被開啟/關閉的。

Secure Boot要求原生UEFI環境,即不能開啟CSM,也就是開啟Secure Boot的系統不支援Legacy啟動及Legacy Option ROM。
Secure Boot關或開。



6.GOPVBIOS:
在UEFI與BIOS介面中,如何顯示出圖形介面的呢?
即是靠GOP與VBIOS。
簡單的說,純UEFI介面(無CSM模擬BIOS的UEFI),是由顯示卡(或內顯)的GOP來產生的。
而傳統BIOS就是用VBIOS產生的,所以,你的顯示卡如果較新,就會有GOP功能,才能以純UEFI啟動(關掉CSM),那如果你是較舊的顯示卡,則會以CSM模擬BIOS再以顯示卡的VBIOS啟動。
 
那麼哪些顯卡支援GOP呢?
1.AMD:只要是HD 7000系列以後的顯示卡,7850,7950,7970等等。
2.Nvidia:只要是GeForce 600系列以後,660, 660Ti, 670, 680…等等。
但是,就算你是AMD的7系列或者NVIDIA的6系列,有可能還是不支援UEFI GOP!
這時則可以透過後天刷新顯示卡韌體刷成GOP。
 
CPU,筆記型電腦搭載英特爾 IvyBridge以上的CPU(大多數的Sandy Bridge平台不支援關閉CSM的機制,所以不算純UEFI環境),
所以若是使用英特爾內顯,從HD3000之後開始支援,AMD應該是APU都有支援。
 


7.GPTMBR
首先了解到UEFI只能裝在GPT模式的硬碟
當你在安裝系統時,Windows會進入一個磁碟分割的頁面,就是把你"一顆硬碟"分割成C/D/E"多種槽"的操作,如果你將一顆硬碟分割成兩個分割區,那麼你在「我的電腦」視窗中就會看到「磁碟 C」與「磁碟 D」兩個磁碟機了。

而"一顆硬碟"本身又有分割的"模式"MBR與GPT的差異,我們將硬碟比喻成是一間圖書館,
GPT與MBR就好比圖書館中的書架。
GPT可在大型圖書館中放很多書架,硬碟可支援到18ET,可分割128磁區(128個C.D.E槽)。
MBR只適合小型圖書館中擺放的書架,硬碟支援到2TB,最多可分個4個主要磁區(4個C.D.E槽)。

最簡單差異是,當你買2TB以上硬碟請用GPT模式,否則MBR只認2TB內容,其他皆會浪費掉。
所以GPT即是EFI的標準,用來替代以MBR開機的BIOS,並UEFI只能裝在GPT上,而Win7的32位元不支援GPT啟動作業系統(啟動Windows),但可以單純讀取GPT硬碟當儲存碟。只有Win7 64位元可以以GPT啟動作業系統,W8之後則不論32、64皆可以。
W7 64位元也能安裝純UEFI(感謝留言音樂自備分享)

以Win7 64位元 或W8之後的作業系統才能安裝純UEFI哦!
(可以GPT硬碟裝UEFI開機,再配上MBR的資料硬碟)
 
 

總結一下純UEFI的限制:
1.主機板為UEFI
2.顯示卡有支援GOP(若VBIOS可靠後天刷成GOP)
3.將CSM關閉
4.將作業系統以UEFI模式安裝
5.Win7 64位元 或 Win8以後的作業系統
6.以USB安裝UEFI Windows必須是Fat32。exFat不行,NTFS可能不行。
 
 
到這邊結束,應該可以解開很多人對名詞的疑惑,雖然我從HDD換到SSD開機已經很有感了,但是用UEFI配SSD之後感覺電腦又進化了!
 
 
以上小小心得分享,歡迎回覆留言討論,有錯誤的地方歡迎指教,如果喜歡幫我按個GP謝謝!

想深入了解可以參考:
**禁止抄文獲利!**

335
-
LV. 17
GP 235
2 樓 AllahuAkbar nimajneb34
GP11 BP-
(一)使用UEFI安裝作業系統的話 會把硬碟用成GPT模式 你裝系統的時候會切成四個磁碟區
(二)使用Legacy(傳統)安裝系統的話 則是MBR模式 會切成兩個磁碟區(可以刪除一個然後把系統那個延伸 這樣就剩下一個了)
對於(SSD)儲存空間較小需要GG計較的人來說 反正SSD開機速度本來就快與其給他切那幾百MB 又沒多快 不如省下來算了

如果想用(一)的人 在隨身碟開機的時候用UEFI開頭的選項
如果想用(二)的人 在隨身碟開機的時候選沒有UEFI的選項

或許過不久SSD價錢跟HDD一樣便宜的時候 大家就不會那麼CARE那幾百MB的問題了
現在1TB的SSD還是很貴阿~~
11
-
LV. 17
GP 88
3 樓 ノキ a52456536
GP5 BP-
感謝提供資料
老實說看到這種貼文真的有點感動 有種“終於出現了電腦版該出現的東西“的感覺
不是那些小學生不懂英文又不google又不爬文的問題貼

5
-
LV. 18
GP 23
4 樓 LeonPhoenix iorlvskyo
GP39 BP-
在業界大多數人還是稱之為UEFI BIOS,對於以往的BIOS則是稱為Legacy BIOS。
BIOS全名為Basic Input/Output System(基本輸入輸出系統),就已字面上來看,繼續把它稱之為UEFI BIOS也沒甚麼問題,而且它依然提供了許多底層的服務給上層的作業系統使用。
早期的BIOS都是由組合語言撰寫的,Legacy BIOS會提供中斷向量(Interrupt Vector)等介面用來跟與外部做溝通,例如早期的OS或應用程式,而UEFI已不需要這東西了,除非有需要使用不相容於UEFI的OS,才需要將CSM功能打開,以提供中斷向量等服務。

Legacy BIOS由各家IBV (Independent BIOS Vendor)所開發,所以除了標準的X86架構以外,整個BIOS系統由各個IBV定義,簡單來講就是各寫各的,如果開發商使用的BIOS從A公司換到P公司,可能會發現許多寫過的程式無法相容。

UEFI全名為Unified Extensible Firmware Interface,目前由UEFI協會管理與制定規格。UEFI推出一套稱為EDK(EFI Development Kit,而穩定發佈版稱之為UDK)開放原始碼的開發套件,裡面除了已經定義好的標準外(如C的header file),還有許多被已被開發出的標準程式模組。
任何人都能夠下載它並執行其模擬環境,在Windows底下提供了NT32的模擬器,可供使用者作些簡單的開發與測試。
模擬器的啟動畫面。

UEFI由約99%的C語言與1%的組合語言撰寫,裡面定義了許多標準的開放介面,這些都定義在UEFI Spec裡面。
現在各家IBV都是使用這套標準,使用這套標準的好處為,只要是使用UEFI開放出來的標準介面所開發的程式,不管是從A公司換到P公司還是從P公司換到I公司,基本上是可以正常運作的,除非使用到其他公司自行定義的介面。

左邊為UEFI在背景印出的Debug的訊息,而右邊為UEFI所提供的Shell環境,類似於DOS,提供許多指令,可做些基本的控制。
其實UEFI跟一個小型的系統沒兩樣了,提供了記憶體管理、簡單工作的排程與各項硬體周邊的控制。

現行的EDK都已經被EDKII所取代,EDKII提供了更模組化的概念,我們稱之為Package,這些Package都詳細的定義出它所提供的介面與程式,UEFI各個程式都可編譯成獨立的EFI檔案,有點類似Windows底下的EXE檔,可在UEFI的環境下被執行。
各個EFI檔案除了負責自己的工作外,也可透過所定義好的介面與其他程式做溝通、互相傳遞資料等等,例如Protocol、PPI等方式。

UEFI明確的定義出系統開機的四個階段:SEC -> PEI -> DXE -> BDS

SEC(主要是由組合語言撰寫):
系統開機(或重開機)後執行的第一條指令(0xFFFFFFF0,為系統記憶體接近4G的位置)會跳轉到這個特定的程式的位置去執行(但以現行的許多系統來說,開機第一個跑的程式其實並不是BIOS,而是例如像Intel ME等之類的韌體,待它們初始化完之後才會將控制權轉交給BIOS的第一條指令。時代在變,觀念也要變了...)。
為什麼會在接近4G的位置:因為這是x86的規範,存有UEFI BIOS的SPI Flash Part裡面的資料會被映射到接近4G的位置,簡單來說當Flash Part為16MB,其存取範圍為4G - 16M至0xFFFFFFFF (4G - 1 byte)。
以程式設計師的角度來說,對於較為低階的程式語言(如組合語言、C、C++)來說,存取與操作記憶體是輕而易舉的,所以透過硬體機制把在Flash Part上的資料映射到RAM上面,對於撰寫韌體的程式設計師來說是非常方便的!可以直接透過記憶體位置去存取ROM上的BIOS資料。
否則需要以一道一道的指令送給SPI控制器且需要等待其回覆時間,這會麻煩許多...

SEC最主要的功能是初始化CPU上的快取記憶體(L3 Cache)來當作暫時的記憶體來用。
原因是因為系統剛啟動的時候,一般的RAM尚未被初始化,而C語言在執行的時候,需要Stack來執行其各個Function,所以這時候要有一個暫時的RAM來放置Stack。
在SEC完成這個主要的項目後,會交棒給下一個階段:PEI。

PEI (The Pre-EFI Initialization):
PEI最主要的任務為初始化系統上的暫存器與記憶體,初始化記憶體需經過繁雜的時序的計算,並將其結果填到晶片組的暫存器中。這些有關晶片組的程式通常由IHV如Intel、AMD等Chipset Vendors所提供。
一般來說PEI能做的事情越少越好(雖然現在越來越多了...),將基本的硬體初始化後就把控制權交給下一個階段:DXE。

DXE (Driver Execution Environment):
這階段所負責項目就多了,提供了許多Protocol與各個DXE階段的EFI執行檔做溝通。其中跟設備最有關係的就是被稱之為DXE Driver的EFI執行檔,它會提供標準的介面,用來初始化各個周邊裝置,如各種PCI裝置(顯卡、USB控制器等)、鍵盤滑鼠(常見的有USB與PS2介面)、SATA、NVMe等...。
但基本上在這階段,上述的周邊還不會被初始化,DXE階段只是執行那些DXE Driver的程式,使他們提供出標準的介面來給BDS作執行。
DXE階段確定沒有DXE的EFI程式有需要被執行的時候,就會把控制權給BDS,其實BDS也只是隸屬於DXE中的一個程式。

BDS (Boot Device Select):
BDS就真的跟啟動到作業系統比較有關係了,在這階段可以依照系統環境要求來決定哪些周邊需要初始化的,例如像系統廠想要開機速度更快的話,或許可以在某些條件下不初始化USB相關裝置(鍵盤、滑鼠、儲存裝置等),事情多做總是會花時間的。而某些裝置沒初始化也不用擔心,作業系統有自己的Driver會負責這些事情,所以進了OS還是可以使用的。
而基本上顯卡(VGA)是一定會被初始化的,所負責的就是所謂的GOP(Graphics Output Protocol) Driver,GOP Driver除了初始化顯卡並點亮螢幕外,也提供標準的程式介面供開發者將圖像輸出到畫面上,等於是程式與顯卡溝通的橋樑,所以說在BIOS階段只要看到跟畫面有關的,基本上跟它脫離不了關係。

BDS也提供了程式給使用者作細部的設定,也就是大家孰悉的Setup或Boot Menu。
這些功能都可做成文字或GUI介面的,完全取決於各家廠商的考量,現今的許多NB都還是文字介面的。
所以如果要以是不是GUI介面來分辨是不是UEFI,也是不夠準確的。
其實如果以前的BIOS Vendor要的話,也是可以提供GUI介面給Legacy BIOS的,但可以說不合乎成本與需求(尤其以前的ROM沒那麼大...)

而BDS要從哪一個裝置啟動作業系統(OS)則是取決於Boot Order的設定,以純UEFI的OS來說,可以看到在ESP分割區(EFI System Partition,Windows安裝的時候會切割的一個100MB的隱藏分區,其大小其實可以自訂)裡面會有個efi\boot的資料夾,OS安裝之後會將其loader程式放在裡面,BDS則會依照這個標準來找到並執行該loader。
在OS的安裝檔裡面,可以已看到相對應的資料夾。
附帶一提,32bit的作業系統其檔名為bootia32.efi而64bit為bootx64.efi。

另外DXE部分可以分為32bit或64bit,這在編譯期間就需要決定,主要取決於CPU的支援性(或商業考量...)。
如果是32bit的DXE就只能執行bootia32.efi,也就是32bit的OS,而64bit則反之。
現在大部分的個人電腦都是64bit,但還是有些例外,如某些Atom系列(Clover Trail)就是32bit的環境,所以OS也只能安裝32bit的版本。

============================================================

現在UEFI可以說是包山包海,除了支援了標準的Network Stack架構外,HTTP、TLS (HTTPS)協定也支援了,未來也會導入更多安全機制,可以說是讓整體系統越來越安全(越來越肥...,相信99%的使用者都是能夠開機就好!)

============================================================

目前先打到這裡,有想到其他的再打。

出處:自己(某公司的BIOS Engineer)
39
-
LV. 20
GP 141
5 樓 你看看你 YuAn0720
GP0 BP-

大神想請問一個問題 T T

前陣子接觸這塊,安裝了win10作業系統
卻之後都進不去BIOS的畫面@@

已上網爬文過
無論是從控制中心關閉快速啟動

還是按下Shift在關機

亦或是從復原開機選項進去 都沒有更改UEFI的選項

目前問題1:進不去BIOS
       問題2:解決問題1後要如何從BIOS更改此啟動設定

(剛接觸這塊的新人,如需附上某些檔案或是畫面才知道問題點會在補述)
0
-
LV. 40
GP 580
6 樓 NwDsC rockzero18
GP1 BP-
請問我這個情況有辦法不重新安裝系統,就解決開不進去的問題嗎?

1. 主板為技嘉 H410M S2 V3(去年買顯卡被綁售的)
2. 我原先安裝 Windows 10 時,可能(沒印象了)沒有開啟 CSM
3. 硬碟為 GPT 分割表,所以目前應該是純 UEFI 系統環境無誤
4. 因為現在想讓 CPU 內顯當主輸出,查了一下需開啟 CSM
5. 開啟 CSM 之後就進不去系統了,會卡在技嘉的開機 Logo

目前我是猜打開 CSM 之後,就無法啟動純 UEFI 模式安裝的系統?
可能這張板子關 CSM 只支援 GPT 開機、開 CSM = 只支援 MBR?

是有看到打開 CSM 之後有個 OptROM 可以設為 Legacy 或 UEFI,
預設是 Legacy 但是我改成 UEFI 之後也還是一樣卡在開機 Logo。

所以我現在還是先維持關閉 CSM,這樣才能正常使用這台電腦。
1
-
LV. 40
GP 580
7 樓 NwDsC rockzero18
GP1 BP-
我好像發現問題點在哪了,根據我在 ASUS 官網看到的說明(雖然我是技嘉的板子):



而技嘉 H410M S2 V3 正是 Intel® H510 Express Chipset,並不是 Intel 400。
因此只能使用 UEFI 模式開機,無法透過開啟 CSM 使用 Legacy 模式。
1
-
LV. 24
GP 405
8 樓 Z creek33
GP0 BP-
10代CPU內顯不支援傳統模式.
所以要開CMS 必須使用獨顯.
這邏輯是沒問題的.

可是 會變成你現在遇到的狀況 ???
你是要內顯 + UEFI開機啊 (只是獨顯還插著).   
結果被卡死???
0
-
LV. 36
GP 285
9 樓 肛之戀精漱濕 s873206
GP0 BP-
0
-
未登入的勇者,要加入 10 樓的討論嗎?
板務人員: