MBR&GPT分區基本原理

1、磁盤系統為什么要分區?

    ?     優化I/O性能

    ?     實現磁盤空間配額限制

          ?     提高修復速度

          ?     隔離系統和程序

   ?     安裝多個OS


2、目前計算機磁盤流行的兩種分區方式:MBR、GPT


3、MBR分區原理

   MBR: Master Boot Record, 1982年, 使用32位表示扇區數, 分區不超過2T

如何分區:按柱面
     0磁道0扇區: 512bytes
                446bytes: boot loader主引導分區,可以安裝引導加載程序的地方
                64bytes:分區表,記錄整塊硬盤分區狀態
        其中16bytes: 標識一個分區
                2bytes: 55AA

1.png

2.png

由于分區表只有64字節,因此最多容納4個分區,這四個分區我們稱為主或擴展分區。根據上面的圖示和說明,我們知道:

a、主分區和擴展分區最多只能有四個(硬盤的限制)

b、擴展分區最多只能有一個

c、邏輯分區是由擴展分區持續切割出來的分區

d、能夠被格式化后做數據訪問的分區是主分區與邏輯分區,擴展分區是無法格式化的



4、GPT分區原理

GPT:GUID patition table 支持128個分區,使用64位,支持8Z(512Byte/block ) 64Z (4096Byte/block)
? 使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC校驗位
? UEFI (統一擴展固件接口)硬件支持GPT

3.png


    EFI部分又可以分為4個區域: EFI信息區(GPT頭)、分區表、 GPT分區、備份區域

    在MBR硬盤中,分區信息直接存儲主引導記錄(MBR)中(主引導記錄中還存儲著系統的引導程序)。但在GPT硬盤中,分區表的位置信息儲存在GPT頭中。但出于兼容性考慮,硬盤的第一個扇區仍然用作MBR,之后才是GPT頭。

跟現代的MBR一樣,GPT也使用邏輯區塊地址(LBA)取代了早期的CHS尋址方式。傳統MBR信息存儲于LBA 0,GPT頭存儲于LBA 1,接下來才是分區表本身。64位Windows操作系統使用16,384字節(或32扇區)作為GPT分區表,接下來的LBA 34是硬盤上第一個分區的開始。

    為了減少分區表損壞的風險,GPT在硬盤最后保存了一份分區表的副本。總的來說,GPT都將修復 MBR 的許多限制:

  • (1)GPT只使用LBA,因此,CHS問題就不復存在。

  • (2)磁盤指針的大小為64位,假設512字節扇區,這意味著GPT可以處理的磁盤大小最高達512 x 264字節(8zebibytes,即86億TiB)。

  • (3)GPT數據結構在磁盤上存儲兩次:開始和結束各一次。在因事故或壞扇區導致損壞的情況下,這種重復提高了成功恢復的幾率。

  • (4)循環冗余檢驗值針對關鍵數據結構而計算,提高了數據崩潰的檢測幾率。

  • (5)GPT將所有分區存儲在單個分區表中(帶有備份),因此擴展分區或邏輯分區沒有存在的必要。GPT默認支持128個分區,當然您也可以更改分區表的大小,如果您的分區軟件支持這種更改的話。

  • (6)雖然MBR提供1字節分區類型代碼,但GPT使用一個16字節的全局唯一標識符(GUID)值來標識分區類型。這使分區類型更不容易沖突。

  • (7)GPT支持存儲人類可讀的分區名稱。您可以使用這個字段來命名您的Linux /home、/usr、/var和其他分區,以便它們在分區軟件中更容易識別。


LBA 0

    在GPT分區表的最開頭,處于兼容性考慮仍然存儲了一份傳統的MBR(LBA 0),這個MBR也叫做保護性MBR。

    保護性MBR保護GPT磁盤不受以前發布的MBR磁盤工具(比如FDISK或WindowsNT磁盤管理器)的危害。這些工具不能感知GPT,也無法正確地訪問GPT磁盤。不能識別GPT的舊軟件在訪問GPT磁盤時只解釋保護性MBR。這些工具通過解釋保護性MBR,將GPT磁盤看成一個封裝的(可能無法識別)分區,而不是錯誤地當成一個未分區的磁盤,并且拒絕對硬盤進行操作,除非用戶特別要求刪除這個分區。這就避免了意外刪除分區的危險。例如,當在32位的Windows XP系統中掛載GPT磁盤時,會將其識別為“GPT 保護分區(GPT Protective Partition)”,并且用戶無法對這個分區進行任何操作(除非使用命令行工具),這是因為32位的Windows XP并不支持GPT,它僅僅只是知道掛載的是一個GPT磁盤而已。

    在支持從GPT啟動的操作系統中,這里也用于存儲第一階段的啟動代碼。在這個MBR中,只有一個標識為0xEE的分區,以此來表示這塊硬盤使用GPT分區表。

LBA 1

    分區表頭(LBA 1)定義了硬盤的可用空間以及組成分區表的項的大小和數量。在使用64位Windows Server 2003的機器上,最多可以創建128個分區,即分區表中保留了128個項,其中每個都是128字節。(EFI標準要求分區表最小要有16,384字節,即128個分區項的大小)

    分區表頭還記錄了這塊硬盤的GUID,記錄了分區表頭本身的位置和大小(位置總是在LBA 1)以及備份分區表頭和分區表的位置和大?。ㄔ谟脖P的最后)。它還儲存著它本身和分區表的CRC32校驗。固件、引導程序和操作系統在啟動時可以根據這個校驗值來判斷分區表是否出錯,如果出錯了,可以使用軟件從硬盤最后的備份GPT中恢復整個分區表,如果備份GPT也校驗錯誤,硬盤將不可使用。所以GPT硬盤的分區表不可以直接使用16進制編輯器修改。

LBA 2–33

    LBA 2–33的位置存放的是分區表項。GPT分區表使用簡單而直接的方式表示分區。一個分區表項的前16字節是分區類型GUID。例如,EFI系統分區的GUID類型是{C12A7328-F81F-11D2-BA4B-00A0C93EC93B}。接下來的16字節是該分區唯一的GUID(這個GUID指的是該分區本身,而之前的GUID指的是該分區的類型)。再接下來是分區起始和末尾的64位LBA編號,以及分區的名字和屬性。

 

原創文章,作者:AndyIvanXue,如若轉載,請注明出處:http://www.www58058.com/41836

(2)
AndyIvanXueAndyIvanXue
上一篇 2016-08-30
下一篇 2016-08-30

相關推薦

  • 【Linux基礎】計算機及操作系統基礎

    【Linux基礎】計算機及操作系統基礎 計算機的組成及其功能 計算機的組成 簡單來說,計算機應由兩部分組成:第一部分:硬件 馮諾依曼結構體系 當前計算機主要是基于馮諾依曼體系結構設計的,在該體系中,計算機硬件由5個部件組成。分別是:運算器、控制器、存儲器、輸入設備和輸出設備。而現今運算器和控制器一般集成在一起,叫中央處理器(Central Processin…

    Linux干貨 2018-03-04
  • 從Linux小白到大牛——與狼共舞的日子12(上)

    馬哥教育網絡班21期+第12周課程練習 1、請描述一次完整的http請求處理過程; 1)建立或處理連接:客戶端發送http請求報文,服務器端接收或拒絕請求; 2)接收請求:服務器端接收來自客戶端對某些資源的請求; 3)處理請求:服務器端解析客戶端請求報文,獲取客戶端請求的資源及請求方法等信息; 4)訪問資源:服務器端獲取客戶端請求的資源; 5)構建響應報文;…

    Linux干貨 2016-12-26
  • Jerry的學習計劃/目標/宣言

    學習計劃 按照班主任給的計劃進度來,多動手做實驗。 目標 勇敢做自己,做更好的自己 宣言 能不能成為高富帥,日后是否能愉快地裝逼,就看這半年!

    Linux干貨 2016-10-24
  • 網絡第21期第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]# fdisk /dev/sdb WARNING: DOS-compatible m…

    Linux干貨 2016-10-09
  • 概述Windows2003的卷影副本

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/157940      卷影副本,也就是Volume Shadow Server簡單來講,卷影副本(或稱為VSS)可以簡單…

    Linux干貨 2015-03-25
  • 10分鐘學會理解和解決MySQL亂碼問題

    本文將詳細介紹MySQL亂碼的成因和具體的解決方案。在閱讀本文之前,強烈建議對字符集編碼概念還比較模糊的同學 閱讀下博主之前對相關概念的一篇科普:十分鐘搞清字符集和字符編碼 MySQL出現亂碼的原因 要了解為什么會出現亂碼,我們就先要理解:從客戶端發起請求,到MySQL存儲數據,再到下次從表取回客戶端的過程中,哪些環節會有編碼/解碼的行為。為了更好的解釋這個…

    2015-03-17
欧美性久久久久