問題#
我們在使用 DiskGenius 對一塊新硬碟建立新分區時會看到這個選項:建立 ESP\MSR 分區。
這是什麼意思呢,首先我們來先了解必要的基礎知識。
UEFI+GPT#
首先需明確的是只有 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(EFI system partition)在 Windows 操作系統下不可見,支持 UEFI 啟動的電腦都需要從 ESP 啟動系統,操作系統被引導之後,就不會再使用它。雖然 ESP 是一個 FAT16 或 FAT32 的格式的物理分區,但它的分區標識是 EF(十六進制)而不是常規的 0E 或 0C。
MSR(Microsoft Reserved Partition)分區則是為了調整分區結構而保留的分區
MSR 分區本質就是寫在分區表上的未分配的空間,Windows 系統並不會想 MSR 分區建立文件系統或者寫數據,但在 Windows8 以上系統更新時,就會檢測 MSR 分區,所以 MSR 分區對於 Windows 是必須保留的,不可刪除,而對於 Linux、MacOS 則不受影響。
至於 HD 和 RD,很明顯是用來區分存儲設備的類型,比如下圖:HD 表示硬碟,而 RD 表示 U 盤,而後面阿拉伯數字 0、1、2…… 則表示系統自檢後掛著的順序。
步驟#
接下來回到正題,我們使用 DiskGenius 硬碟分區工具進行演示如何建立 ESP/MSR 分區:
1、打開 “DiskGenius” 軟體,然後展開左側列表找到要創建 ESP/MSR 分區的磁碟。如下圖:
2、點擊磁碟前 + 號展開後,可以看到磁碟,右鍵點擊它選擇 “建立 ESP/MSR 分區”。如下圖:
3、分別勾選 “建立 ESP 分區、建立 MSR 分區”,接著按照需求設置 ESP 分區大小,然後點擊 “確定” 選項。在 Windows 中只要求 EFI 分區最小不應低於 100MB 這也是 Windows 安裝時的默認配置,所以如果沒有特殊需求保持 100MB 就可以了。
對於第一代高級格式(每扇區 4 KB)驅動器,此分區的最小大小為 260 MB。
對於較早的每扇區 512 字節驅動器,此分區的最小大小為 100MB。如下圖:
#
參考文獻#