首先需明確的是只有UEFI啟動+GPT(GUID Partiton Table)硬碟分區才會出現ESP分區和MSR分區,而傳統(Legacy)啟動+MBR(Master Boot Record)硬碟分區完全用不到ESP分區和MSR分區。

UEFI前身是英特爾在1998年開始開發的Intel Boot Initiative,后來被重命名為可擴展固件接口(Extensible Firmware Interface,縮寫為EFI)。2005年英特爾將其交由統一可擴展固件接口論壇(Unified EFI Forum)來推廣與發展,EFI也正式更名為UEFI(Unified EFI,即統一可擴展固件接口)。

UEFI論壇于2007年1月7日公布2.1版本,所以近十來年的新配電腦標配是UEFI啟動,只有十來年前的電腦才是傳統的BIOS啟動。

UEFI固件也可以支持傳統BIOS啟動環境,兩者并沒有功能上的本質區別,PC的啟動固件的引導過程從IBM PC機誕生那天起,就沒有本質改變過。
- 在ROM Stage階段沒有內存,需要在ROM上運行匯編語言代碼。臨時空間Cache登場用作RAM后,C語言才可以粉墨登場。
- 在RAM Stage階段,有了可以大展拳腳的內存,很多額外需要大內存的東西可以開始運行了,這時就需要初始化芯片組、CPU、主板模塊等核心過程。
- 在Find Somethin to boot Stage階段就要枚舉設備,發現啟動設備,并把啟動設備之前需要依賴的節點通通打通,然后才開始移交工作,這才是Windows或者Linux時代的開始。
UEFI的發明有偶然性,也有必然性。UEFI發明之前,PC機都還在用傳承自1979年的傳統BIOS,一堆用匯編寫的硬件初始化代碼,它封閉、神秘,并且充滿了各種不清不楚的預設和祖傳代碼。1997年英特爾的員工基于傳統BIOS來支持基于安騰處理器芯片組的服務器,但并不順利,最終該計劃被證實不可行,英特爾最終最頂開發一套全新的機制。

在平臺固件和OS加載器之間使用高級C語言接口成為了一個必然選擇,這樣操作系統可以盡可能少地去了解平臺的硬件細節,為啟動過程定義一個在固件和操作系統間和CPU架構無關的API就由此誕生了。

UEFI是用模塊化C語言風格的參數堆棧傳遞方式,動態鏈接的形式構成的,較BIOS更易于實現,容錯和糾錯特性更強,縮短了系統研發的時間。UEFI的啟動時間要比傳統的BIOS啟動要快,可支持滑鼠圖形化操作。
MBR和GPT分區表的區別
在使用新硬碟之前必須對它進行分區,這些分區包含了分區從哪里開始的資訊,這樣操作系統才知道那個扇區是屬于哪個分區的,以及哪個分區是可以啟動的。

MBR即主引導記錄,最早在1983年由IBM PC DOS 2.0中提出。
之所以叫主引導記錄,是由于它存在于驅動器開始部分的一個特殊的啟動扇區,包含了已安裝的操作系統的啟動加載器和驅動器的邏輯分區資訊。

MBR支持最大2TB的硬碟,而無法處理大于2TB容量的硬碟,它只能創建最多4個主分區,如果還要建立更多的分區,就需要創建所謂的“擴展分區”,并在其中創建邏輯分區。嚴格意義上將擴展分區并不是一個實際意義的分區,僅僅只是一個指向下一個分區的指針。
GPT即全局唯一標識符(GUID)分區表
顧名思義驅動器上每一個分區都有一個全局的唯一的標識符,這串隨機生成的字符串可以保證為地球上的每一個GPT分區都分配完全唯一的標識符。

GPT沒有MBR那么多限制,容量可以達到操作系統和文件系統都沒法支持,并且還支持無限個分區數量,而不需要創建擴展分區。目前限制僅在操作系統上,Windows最多支持128個GPT分區。
GPT和EFI相輔相成
UEFI用于取代老舊的BIOS,而GPT用于取代老舊的MBR。UEFI雖然可以引導MBR,但它似乎與GPT更配,值得注意的是傳統的BIOS是沒法引導GPT分區內的系統,會黑屏提示無法引導系統磁盤。

在GPT分區中,ESP是一個獨立于操作系統之外的分區
ESP在Windows操作系統下不可見,支持UEFI啟動的電腦都需要從ESP啟動系統,操作系統被引導之后,就不會再使用它。雖然ESP是一個FAT16或FAT32的格式的物理分區,但它的分區標識是EF(十六進制)而不是常規的0E或0C。

MSR分區則為了調整分區結構而保留的分區
MSR分區本質就是寫在分區表上的未分配的空間,Windows系統并不會想MSR分區建立文件系統或者寫數據,但在Windows8以上系統更新時,就會檢測MSR分區,所以MSR分區對于Windows是必須保留的,不可刪除,而對于Linux、MacOS則不受影響。

至于HD和RD,很明顯是用來區分存儲設備的類型,比如下圖:HD表示硬碟,而RD表示隨身碟,而后面阿拉伯數字0、1、2……則表示系統自檢后掛著的順序。

歷史的車輪總是在往前挪,很多技術是因為不適應當下的局勢又很難躍進,所以就干脆推倒重來。如果不是十幾年前的老舊電腦,還是UEFI+GPT更配。
以上個人淺見,歡迎批評指正。
認同我的看法,請點個贊再走,感謝!
喜歡我的,請關注我,再次感謝!
我記得是MBR
bios啟動文件刪了咋搞 重裝系統都不行[凝視]