磁碟定址與分割表

最後更新: 2024-02-16 16:23:16 +0800 +0800
原文以英文撰寫。您正在閱讀AI翻譯版本。

磁碟位址識別磁區,而分割表將產生的位址空間分成區域。檔案系統佔用其中一些區域,但屬於獨立的格式層。保持各層分離,可以解釋為何過時的幾何欄位能與現代邏輯定址共存。

實體與轉譯 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 等;裝置將每個編號映射至其內部媒體。容量直接依邏輯區塊數量與大小計算:

text
capacity in bytes = logical-block count × logical-block size

MBR 分割項目儲存 32 位元起始 LBA 與 32 位元磁區數量。在每磁區 512 位元組時,數量欄位將單一分割區限制在略低於 2 TiB。公開 4096 位元組邏輯區塊的磁碟會移動該算術限制,但傳統韌體與軟體相容性可能施加其他限制。LBA 移除 CHS 轉譯,但不會讓儲存 LBA 的每個欄位任意變寬。

MBR 啟動與分割項目 #

在傳統配置中,主開機記錄位於第一個 512 位元組邏輯磁區。其慣例結構為:

偏移大小用途
0446 位元組啟動程式碼與實作特定資料
44664 位元組四個 16 位元組分割項目
5102 位元組0x55AA 簽章

每個項目包含啟動指示器、分割類型位元組、起始與結束 CHS 欄位、起始 LBA 與磁區數量。BIOS 啟動程式可以檢查作用中項目,並從選定分割區載入程式碼。表格本身既不定義檔案系統,也不保證分割區包含啟動程式碼。

延伸分割區 #

四個項目受到限制,因此 MBR 系統保留分割類型值給延伸分割區。延伸區域包含連結的延伸啟動記錄(EBR)序列:

  1. 第一個 EBR 項目描述相對於該 EBR 的一個邏輯分割區。
  2. 存在時,第二個項目指向相對於所含延伸分割區基底的下一個 EBR。
  3. 沿著連結走訪即可列舉邏輯分割區。

因此,延伸分割區是中繼資料與邏輯分割區的容器,而不是另一個檔案系統磁碟區。即使檔案系統資料仍存在,EBR 鏈中的錯誤偏移或迴圈也可能隱藏後續分割區。

磁碟區啟動記錄 #

用於 BIOS 啟動的分割區通常以磁碟區啟動記錄(VBR)開始。對 FAT 而言,VBR 將初始機器碼與描述磁碟區的 BIOS 參數區塊結合。NTFS 與其他可啟動檔案系統定義自己的第一磁區格式。MBR 定位分割區,而 VBR 與檔案系統中繼資料解讀其內容;兩者都不能互相取代。

GUID 分割表 #

GUID 分割表(GPT)作為 UEFI 的一部分標準化,以自我描述配置取代四項陣列與 32 位元 MBR LBA。一般磁碟包含:

  1. LBA 0 的保護性 MBR;
  2. LBA 1 的主要 GPT 標頭;
  3. 主要分割項目陣列;
  4. 分割區可用的 LBA;
  5. 磁碟末端附近的備份分割項目陣列;
  6. 最後一個邏輯區塊中的備份 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 上閱讀或評論(發表評論需要登入)