淺談 MBR & GPT

分區表

一個磁盤拋開物理組成部分的話,就是一個地址序列,這個序列從0~n-1,每一個地址包含512B(字節)的控件。通常咱們將這些地址稱做邏輯塊地址(LBA),每塊由512B組成。分區表的做用是:告訴系統,磁盤的分區有幾個,開始位置和結束位置。磁盤分區表格式目前主要有兩種MBR分區表和GUID分區表(GPT)。佈局

MBR

MBR即主引導記錄(Master Boot Record),位置在磁盤的第一個邏輯扇區,即LBA0的位置。一個邏輯扇區僅有512B(字節),分給MBR分區表的只有64B,由4個16B大小的分區,這也是硬盤主分區數目不能超過4個的緣由,MBR分區表最大可尋址的存儲空間只有2TB(2^32 * 512)。標準MBR結構以下:操作系統

由上圖能夠看出,MBR主要由三部分組成,主引導程序、硬盤分區表(DPT)、分區有效標誌。主引導程序佔據446字節,分區表佔據64字節,由4個大小爲16字節的主分區組成,還有分區有效標誌佔據2字節。接下來談談有關這三個部分的做用:接口

  • **主引導程序(boot loader):**主要負責從活動分區中裝載並運行引導系統程序
  • **分區表(DPT,Disk Partition Table):**將大表的數據分紅稱爲分區的許多小的子集。若是磁盤丟失了分區表,數據就沒法按順序讀取和寫入,致使沒法操做
  • **分區有效標誌(magic number):**有的地方也稱爲結束標誌字,固定值爲0xAA55或者0x55AA,取決於處理器類型,若是是小端模式處理器(如Intel系列),則該值爲0xAA55,若是是大端模式處理器(如Motorola6800),則該值爲0x55AA。若是該標誌錯誤,系統就不能啓動

傳統的BIOS比較低級,它不能像操做系統同樣識別文件系統,全部磁盤必需要有一個固定的物理塊做爲引導塊(Boot Block),這個引導塊就是MBR。也就是說MBR是用來引導內存加載並運行操做系統內核的。內存

GPT

GPT即全局惟一標識分區表(GUID Partition Table)是一個實體磁盤的分區表的結構佈局的標準。它是可擴展接口(EFI)標準的一部分。因爲MBR分區表最大可尋址的存儲空間只有2TB這個侷限性。CPT就誕生了,CGPT分類64bits給邏輯塊地址,這就意味着尋址存儲空間達到8ZB。GPT支持最多128個主分區。CPT結構圖以下:it

如圖能夠看出:GPT分爲如下幾個部分:io

  • 保護性MBR: 處於位置LBA0,是在CPT分區表的開頭,爲了兼容性而存在的傳統的MBR。通常狀況下是沒有引導代碼,僅僅有一個被標識爲未知的分區,當支持GPT分區表的操做系統檢索到這個MBR後會自動忽略並跳到LBA1讀取CGT分區表。
  • **GPT頭:**定義了硬盤的可控件和組成分區表的項的大小和數量,還記錄了這塊硬盤的GUID,記錄了分區表頭自己的位置和大小以及備份分區表頭和分區表的位置和大小。
  • **分區表:**用於存儲分區的信息。如(分區類型GUID,起始LBA,末尾LBA等)
  • **分區:**是物理磁盤的一部分,做用如同一個物理分隔單元。其基本信息存在分區表中。
  • 分區表備份對分區表進行備份
  • GPT頭備份對GPT頭進行備份。處於硬盤最後面

GPT是基於EFI的,所以BIOS是沒法引導GPT磁盤裏的操做系統的。可是爲了解決這個問題,混合分區的概念就產生了。混合分區技術使得可使用BIOS來引導CPT磁盤裏的操做系統。也就讓Mac上面能夠運行Windows成爲了現實。這裏就很少討論了。有興趣的能夠本身去了解一下混合分區和Boot Camp引導。ast

相關文章
相關標籤/搜索