2014年5月26日 星期一

MBR

MBR (Master Boot Record, 主啟動記錄) 是放在硬碟 (或其它類似裝置) 啟動磁區的啟動程式和分割表 (partition table)。

硬碟由許多磁盤構成,包括
  • 磁頭 (Head):硬碟讀寫頭,磁頭數目表示總共有多少磁盤讀寫面。
  • 磁軌 (Track):每個磁盤有許多儲存資料的同心圓。
  • 磁柱 (Cylinder):同半徑的磁軌所組成的圓柱。
  • 磁區 (Sector):硬碟最小儲存單位,一般 512-byte。
硬碟的儲存量 = 磁柱 x 磁碩 x 磁區 x 512 bytes。

MBR 放第一個磁區 (編號 0),剩下的磁區最多可切出四個區塊,稱為分割區 (partition)。分割區分成主要分割 (Primary Partition) 跟擴充分割 (Extended Partition) 兩種。主要分割就是一個邏輯硬碟。擴充分割的架構就像一個實體硬碟,其第一個磁區放格式類似 MBR 的的 Extend Boot Record (EBR),但只能切出一個邏輯硬碟、以及一個擴充分割。邏輯硬碟以 DOS/Windows 觀點就是 C:、D:、E:... 這些硬碟機名稱。透過擴充分割再切出擴充分割,可分割出一系列邏輯硬碟。

MBR/EBR 內容
偏移byte 數內容說明
0 ~ 445446啟動資料與程式
446 ~ 50964分割表 可描述 4 個分割區,每個用 16 bytes。MBR 可用掉 1~ 4 個描述主要分割,如有剩下可描述 1 個擴充分割。EBR 第 1 個描述一個邏輯硬碟,第 2 個可描述內部的擴充分割,第 3、4 個不能使用。
510, 51120xAA55識別用

分割區描述

每個分割區描述用 16 bytes,如下:
偏移位址byte 數名稱說明
00H1啟動狀態80h 表示可啟動
00h 表示不可啟動
01H3起始磁頭、磁柱、及磁區位置為相對於 MBR。其中起始磁頭 8-bit、起始磁柱 10-bit、起始磁區 6-bit。
04H1檔案系統識別碼(partition types) 識別是擴充分割,還是主要分割所用的檔案系統
05H3結束磁頭、磁柱、及磁區格式同起始磁頭、磁柱、及磁區
08H4分割區相對位置相對於目前磁區的磁區數。
0CH4磁區數該分割磁區總數

磁柱、磁頭、及磁區合稱 CHS (cylinder, head and sector),可用作為磁區定址使用。另一種定址方式稱為 Logical Block Address (LBA),將一顆硬碟的磁區從 0 開始依序編碼。每個分割區需要從分割區描述知道其使用的磁區範圍:
定址方式CHSLBA
開始磁區起始 CHS分割區相對磁區數
結束磁區結束 CHS分割區相對磁區數 + 磁區數
最大容量8.4 GB = 210*28*(26-1)*512B2199 GB = 232*512B
BIOS 中斷INT 13hExtended INT 13h
(使用 64-bit LBA 定址,可支援達 9400000000 TB 的硬碟,實際上分割表只有 32-bit 的 LBA。)
因為 MBR 有最大容量 2.2 TB 的限制等問題,發展了 GPT

檔案系統識別碼
通常分割區會從下個磁軌開始,所以 MBR 跟分割區的起始間會有一些沒用的磁區,通常有 63 個磁區。

參考

  1. 小木偶的組合語言教學之Ch 32 硬碟 (1) 分割區
  2. http://www.48bitlba.com/
  3. http://ata-atapi.com/
  4. spfdisk
  5. Jamyy's《復原 Windows MBR 的各種方式

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...