Linux學習—MBR和GPT

MSDOS(MBR)和GPT--早期的Linux系統採用MBR的方式來處理開機引導程序和分區表,這些一般放在磁盤的第一個扇區(512字節)中,可是MBR分區只能抓取2TB的容量等等的限制,新的分區格式GPT所以產生ide


MBRspa

    MBR位於整個磁盤的的第一個扇區,整體分爲三部分:操作系統

    boot loader:主要做用是把內核加載到內存中,引導系統加載
ip

    分區表DPT(16字節*4):保存着磁盤的分區信息,因爲DPT只有64字節,所以最多隻能劃分四個分區,說到底對於磁盤的分區不過只是對DPT的分區而已,固然了,系統會預留一個擴展分區(Extended),擴展分區自己並不能建立文件系統格式化,對它繼續劃分,這樣就能夠劃分出更多的分區(邏輯分區),並且每一個邏輯分區中的前幾個扇區也會用來記載分區信息。內存

    其中每一個16字節包含的內容以下:it

        第一個字節:80表示活動分區,00表示非活動分區class

        第二個字節:表示磁頭號,佔8位擴展

        第三個字節:高2位,表示柱面號,低6位,表示扇區號程序

        第四個字節:表示柱面號,佔8位im

            第2 3 4位總共24位,(8位磁頭,10位柱面,6位扇區)能表示8G的空間

        第五個字節:記錄分區類型,0表示分區未使用

            建立分區默認是83,更改成8e的效果圖:

        第六個字節:表示磁頭結束號,佔8位

        第七個字節:高2位,柱面結束號,低6位,扇區結束號

        第八個字節:表示柱面結束號,佔8位

        第九個字節至第十二字節:分區起始LBA地址,隱藏扇區數目

        第十三字節至第十六字節:分區結束LBA地址,分區的總扇區數

            共4*8=32位,能表示2T的空間

    結束標誌字 55 AA

一個邏輯分區前有一個EBR(512字節),和MBR的結構同樣,只是EBR中的前446字節中沒有數據,16字節*4中,第一個16字節指向當前邏輯分區,第二個16字節指向下一個EBR,剩下的兩個16字節未使用,總之硬盤使用都會先讀取MBR,若是硬盤的MBR壞掉,那麼這整個硬盤也就壞了。


2、GPT

    隨着硬盤的容量愈來愈大,傳統的MBR支持的2TB空間已經沒法支持如今大容量的硬盤,於此出現了GPT分區格式,GPT使用LBA來處理,而且第一個LBA爲LBA 0(從0開始編號

    支持128個分區

    使用128位的UUID表示磁盤分區

    僅支持UEFI的啓動方式(傳統的BIOS只能支持MBR,若是想要只從GPT啓動只能使用UEFI)

    GPT使用34個LBA區塊記錄分區信息,同時爲了防止傳統的MBR只有一個分區錶帶來的限制,GPT用磁盤的最後33個LBA做爲另外一個備份

  blob.png  

    結構:

        LBA 0:PMBR (512字節)

        對於傳統的操做系統默認啓動是MBR,所以爲了保證GPT下可以啓動僅支持MBR的操做系統,預留了512字節做爲保護MBR,其結構和MBR相似,其中的55AA是必須的,在原來的分區表中如今存放着特殊標誌的分區,表示爲GPT之意,這樣不懂GPT分區的管理程序就不會認識該磁盤,進一步保護了磁盤。

        LBA 1:GPT分區頭

        該LBA區塊記錄了分區表的位置和大小GPT備份區的位置,以及校驗位(CRC32),操做系統能夠根據校驗位判斷該GPT是否正確,若錯誤則能夠根據最後的備份恢復該GPT。

        LBA 2—33:分區表

        每一個LBA區塊能夠劃分4個分區記錄,因此總共能夠有4*32=128個分區記錄,每一個分區記錄512/4=128字節,128字節中分出64字節來表示開始和結束扇區號,因此每一個分區最大限制容量爲2^64*512Bytes=2^33TB=8ZB。

        . . . :分區

        GPT格式沒有擴展分區的概念,所以每一個分區均可以格式化

        LBA N-32...LBA N:備份區域


小tips:理論上GPT格式能夠無限劃分分區(128以上),可是若是劃分的過多的話,好像128以後的分區就不可以格式化使用了。

相關文章
相關標籤/搜索