Linux學習—MBR和GPT
一、MBR
MBR位於整個磁盤的的第一個扇區,總體分為三部分:
boot loader:主要作用是把內核加載到內存中,引導系統加載
分區表DPT(16字節*4):保存著磁盤的分區信息,由於DPT只有64字節,因此最多只能劃分四個分區,說到底對於磁盤的分區不過只是對DPT的分區而已,當然了,系統會預留一個擴展分區(Extended),擴展分區本身並不能創建文件系統格式化,
其中每個16字節包含的內容如下:
第一個字節:80表示活動分區,00表示非活動分區
第二個字節:表示磁頭號,占8位
第三個字節:高2位,表示柱面號,低6位,表示扇區號
第四個字節:表示柱面號,占8位
第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壞掉,那麽這整個硬盤也就壞了。
二、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作為另一個備份
結構:
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之後的分區就不能夠格式化使用了。
Linux學習—MBR和GPT