MBR詳解


我們通常對磁盤分區時,都會涉及到MBR和GPT。MBR和GPT都是磁盤分區的類型,由於以前的硬盤只有幾個GB,幾十個GB,幾百個GB,使用MBR類型分區已經足夠。但是近些年來,硬盤容量的發展速度迅速,已經達到2TB以上。這時,使用MBR分區將不能滿足要求,至於為什么不能滿足,請看下文。

我們可以使用WinHex打開一個磁盤,本磁盤共有4個分區,第1個是主分區,第二個是主分區(里面含有系統),第三個是邏輯分區,第四個是主分區。

磁盤的第1個扇區叫做MBR扇區,一共有512B,主要有3個部分,引導信息、分區表、結束標志。

1. 引導信息

上圖中0~0x1BD即為引導程序,占扇區前446字節。計算機在上電完成BIOS自檢后,會將該主引導扇區加載到內存中並執行前面446字節的引導程序,引導程序首先會在分區表中查找活動分區,若存在活動分區,則根據活動分區的偏移量找到該活動分區上的引導扇區的地址,並將該引導扇區加載到內存中,同時檢查該引導扇區的有效性,然后根據該引導扇區的規則去引導操作系統。在一些非啟動磁盤上,MBR引導代碼可能都是0,這對磁盤使用沒有任何影響。

2.分區表

上圖中0x1BE~0x1FD即為分區表,占扇區中間64字節。分區表是磁盤管理最重要的部分,通過分區表信息來定位各個分區,訪問用戶數據。分區表包含4個分區項,每一個分區項通過位置偏移、分區大小來唯一確定一個主分區或者擴展分區。每個分區項占16字節,包括引導標識、起始和結束位置的CHS參數、分區類型、開始扇區、分區大小等,具體描述如下表所示

字節位移 占用字節數 描述
0x01BE 1Byte 引導指示符,指明該分區是否是活動分區
0x01BF 1Byte 開始磁頭
0x01C0 6Bit 開始扇區,占用6位
0x01C1 10Bit 開始柱面,占用10位,最大值1023
0x01C2 1Byte 分區類型,NTFS位0x07
0x01C3 1Byte 結束磁頭
0x01C4 6Bit 結束扇區,占用6位
0x01C5 10Bit 介乎柱面,占用10位,最大值1023
0x01C6 4Byte 相對扇區數,從此扇區到該分區的開始的扇區偏移量,以扇區為單位
0x01CA 4Byte 該分區的總扇區數

 

字節位移0x01BE:引導指示符,只能是0和0x80,0代表是非活動分區,0x80代表是活動分區。活動分區里包含着操作系統的入口扇區。

字節位移0x01BF~0x01C1:指明了該分區位於磁盤的物理位置。具體搜索C/H/S與LBA地址的對應關系。

字節位移0x01C2:文件系統格式

3.結束標志

上圖中最后的"55 AA"即為結束標志,或者稱魔數,占扇區最后2字節。每次執行系統引導代碼時都會檢查MBR主引導扇區最后2字節是否是"55 AA",若是,則繼續執行后續的程序,否則,則認為這是一個無效的MBR引導扇區,停止引導系統。

按照上面的描述,可以看出磁盤的狀態。

第一個分區表信息:0x00,0x01,0x02,0x00,0x07,0xFE,0xFF,0xFF,0x40,0x00,0x00,0x00,0xAB,0xB3,0x0F,0x23

可得出此分區為非活躍分區,文件系統格式為NTFS(0x07),此分區開始扇區為(0x00(當前扇區)+0x00000040) ,總扇區數為(0x230FB3AB) ,總容量=(0x230FB3AB*512)/1024/1024/1024GB=280.49GB

第二個分區表信息:0x80,0xFE,0xFF,0xFF,0x07,0xFE,0xFF,0xFF,0x30,0xB4,0x0F,0x23,0x91,0xA3,0x40,0x06

可得出此分區為活躍分區,文件系統格式為NTFS(0x07),此分區開始扇區為(0x00(當前扇區)+0x230FB430) ,總扇區數為(0x0640A391), 總容量=(0x0640A391*512)/1024/1024/1024GB=50.02GB

第三個分區表信息:0x00,0xFE,0xFF,0xFF,0x0F,0xFE,0xFF,0xFF,0xC1,0x57,0x50,0x29,0x3F,0x00,0x80,0x3E

可得出此分區為非活躍分區,文件系統格式為擴展分區(0x0F),此分區開始扇區為(0x00(當前扇區)+0x295057C1),總扇區數為(0x3E80003F),總容量=(0x3E80003F*512)/1024/1024/1024GB=500.00GB 

第四個分區表信息:0x00,0xFE,0xFF,0xFF,0x07,0xFE,0xFF,0xFF,0x00,0x58,0xD0,0x67,0x00,0x00,0xA0,0x0C

可得出此分區為非活躍分區,文件系統格式為NTFS(0x07),此分區開始扇區為(0x00(當前扇區)+0x67D05800),總扇區數為(0x0CA00000) ,總容量=(0x0CA00000*512)/1024/1024/1024GB=101.00GB

 對於第三個分區是擴展分區,再進一步研究。我們同WinHEX跳轉到此分區的開始扇區0x295057C1處。可看到如下界面。

在此扇區的偏移0x1BE處又有向MBR類似的分區表信息,規則與MBR規則一樣,只是此處分區表的分區類型不同,我們叫做邏輯分區。

第一個分區表信息:0x00,0xFE,0xFF,0xFF,0x07,0xFE,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x80,0x3E

可得出此分區為非活躍分區,文件系統格式為NTFS(0x07),此分區開始扇區為(0x295057C1(當前扇區)+0x0000003F),總扇區數為(0x3E800000) ,總容量=(0x3E800000*512)/1024/1024/1024GB=500.00GB

疑問:按照上面每個分區的范圍,MBR后面為什么保留了0x40個扇區?擴展分區扇區到邏輯分區扇區也保留了0x40個扇區?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM