磁碟位址識別磁區,而分割表將產生的位址空間分成區域。檔案系統佔用其中一些區域,但屬於獨立的格式層。保持各層分離,可以解釋為何過時的幾何欄位能與現代邏輯定址共存。
實體與轉譯 CHS 幾何 #
柱面—磁頭—磁區(CHS)定址透過三個座標模擬旋轉磁碟:
- 柱面選取盤片表面上相同的徑向磁軌位置。
- 磁頭選取記錄表面。
- 磁區選取該磁軌內編號的記錄。
BIOS INT 13h 介面與原始 IBM PC 分割表會編碼 CHS,但其欄位無法同步擴展。傳統 MBR 項目將 10 位元配置給柱面、8 位元給磁頭,並將 6 位元配置給從 1 開始的磁區編號。因此最大編碼幾何為 1024 個柱面、256 個磁頭與每磁軌 63 個磁區。使用 512 位元組磁區時,這些欄位最多描述約 8.4 GB。
實體磁碟也開始使用分區位元記錄、備用磁區重新映射與嵌入式控制器,因此固定的每磁軌磁區數不再代表媒體。BIOS 與磁碟韌體以轉譯或合成幾何回應。因此,舊分割項目中的 CHS 組合可能是相容性中繼資料,而不是實體磁軌位置。
邏輯區塊定址與容量 #
邏輯區塊定址(LBA)從零開始為可定址磁區編號。主機要求 LBA 0、LBA 1 等;裝置將每個編號映射至其內部媒體。容量直接依邏輯區塊數量與大小計算:
capacity in bytes = logical-block count × logical-block sizeMBR 分割項目儲存 32 位元起始 LBA 與 32 位元磁區數量。在每磁區 512 位元組時,數量欄位將單一分割區限制在略低於 2 TiB。公開 4096 位元組邏輯區塊的磁碟會移動該算術限制,但傳統韌體與軟體相容性可能施加其他限制。LBA 移除 CHS 轉譯,但不會讓儲存 LBA 的每個欄位任意變寬。
MBR 啟動與分割項目 #
在傳統配置中,主開機記錄位於第一個 512 位元組邏輯磁區。其慣例結構為:
| 偏移 | 大小 | 用途 |
|---|---|---|
| 0 | 446 位元組 | 啟動程式碼與實作特定資料 |
| 446 | 64 位元組 | 四個 16 位元組分割項目 |
| 510 | 2 位元組 | 0x55AA 簽章 |
每個項目包含啟動指示器、分割類型位元組、起始與結束 CHS 欄位、起始 LBA 與磁區數量。BIOS 啟動程式可以檢查作用中項目,並從選定分割區載入程式碼。表格本身既不定義檔案系統,也不保證分割區包含啟動程式碼。
延伸分割區 #
四個項目受到限制,因此 MBR 系統保留分割類型值給延伸分割區。延伸區域包含連結的延伸啟動記錄(EBR)序列:
- 第一個 EBR 項目描述相對於該 EBR 的一個邏輯分割區。
- 存在時,第二個項目指向相對於所含延伸分割區基底的下一個 EBR。
- 沿著連結走訪即可列舉邏輯分割區。
因此,延伸分割區是中繼資料與邏輯分割區的容器,而不是另一個檔案系統磁碟區。即使檔案系統資料仍存在,EBR 鏈中的錯誤偏移或迴圈也可能隱藏後續分割區。
磁碟區啟動記錄 #
用於 BIOS 啟動的分割區通常以磁碟區啟動記錄(VBR)開始。對 FAT 而言,VBR 將初始機器碼與描述磁碟區的 BIOS 參數區塊結合。NTFS 與其他可啟動檔案系統定義自己的第一磁區格式。MBR 定位分割區,而 VBR 與檔案系統中繼資料解讀其內容;兩者都不能互相取代。
GUID 分割表 #
GUID 分割表(GPT)作為 UEFI 的一部分標準化,以自我描述配置取代四項陣列與 32 位元 MBR LBA。一般磁碟包含:
- LBA 0 的保護性 MBR;
- LBA 1 的主要 GPT 標頭;
- 主要分割項目陣列;
- 分割區可用的 LBA;
- 磁碟末端附近的備份分割項目陣列;
- 最後一個邏輯區塊中的備份 GPT 標頭。
標頭記錄自身 LBA、替代標頭的 LBA、可用 LBA 邊界、磁碟 GUID、項目陣列位置與形狀,以及標頭與項目陣列的 CRC32 檢查總和。備份儲存足夠中繼資料,以便在一份副本損壞時復原,但修復軟體必須判斷哪份有效副本反映預期配置。
每個分割項目攜帶分割類型 GUID、唯一分割 GUID、第一與最後 64 位元 LBA、屬性及 UTF-16LE 名稱。類型 GUID 表示分割區的預定角色;唯一 GUID 區分個別分割區。兩種 GUID 都不能證明存在的是哪個檔案系統。
保護性 MBR 通常有一個 0xEE 項目,在 32 位元 MBR 大小允許的範圍內涵蓋 GPT 磁碟。其目的在防禦:僅支援 MBR 的程式應將磁碟視為已佔用,而不是提出重新分割。混合 MBR 會在傳統項目中複製選定的 GPT 分割區,但兩個表可能分歧,並非標準保護配置。
分開處理定址、分割與檔案系統 #
儲存工具在不同層級運作:
- 裝置回報邏輯區塊及其大小。
- MBR 或 GPT 中繼資料將這些區塊的範圍指派給分割區。
- 檔案系統將所指派範圍內的區塊解讀為啟動記錄、配置結構、目錄與檔案資料。
變更分割邊界不會調整所包圍的檔案系統大小。格式化分割區不會重建其 GPT 項目。同樣地,在某個偏移找到的檔案系統簽章可能在其分割項目刪除後仍然存在。安全的復原與遷移工具必須驗證全部三個層級,而不能從一個層級推測另一個層級。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)