MBR 小結

在介紹exfat文件系統之前,首先介紹一下MBRMBR作爲傳統的DOS系統的引導扇區,其中可能存儲有bootloadercode,但是如果用於linux這樣的系統,這部分是不許要的,因此,一般是0.

0-0x88

主引導程序

引導程序

0x89– 0x1bd

出錯信息數據區

數據區

0x1be– 0x1cd

分區116字節)

分區1

0x1ce– 0x1dd

分區216字節)

分區2

0x1de– 0x1ed

分區316字節)

分區3

0x1ee– 0x1fd

分區416字節)

分區4

0x1fe

0x55

結束標誌

0x1ff

0xaa

結束標誌

Table1



table1,可以看到從0x1be開始,是分區表的信息,最後兩個字節是結束標誌,對於Linux系統來說,真正要用到的是分區表這部分的信息。

字節偏移

內容

0

引導標誌,0x80(活動分區),0x00(非活動分區)

123

分區起始的磁頭號,扇區號,柱面號

磁頭號:1

扇區號:第2字節的低6bit.

柱面號:第2字節高2bit+3字節


4

分區類型:

00H :未指定

06HFAT16

0BHFAT32

05H:擴展分區

07HNTFS

0FH:(LBA)擴展分區

83Hlinux分區

567

分區的結束磁頭號,扇區號,柱面號

磁頭號: 第5字節

扇區號:第6字節的低6bit

柱面號:第6字節的高2bit+7字節

891011

本分區之前已經使用的扇區數,即分區的開始地址

12131415

分區的總的扇區數。


對於固態硬盤來說,扇區,磁頭等物理上是不存在的,所以我們主要關注分區的開始地址和分區的長度。


下面是一個SD卡,大小是16G,通過fdisk分成兩個分區


1


從圖1知,分區1的起始地址是10000,長度是10000000– 10000 + 1 = 9990001


分區2的起始地址是10000001,長度是31116287– 10000001 + 1 = 21116287.


下圖是我通過一個小應用解析的MBR的數據內容,主要開分區表的信息。


2












3


4

綜合圖2,圖3,圖4可獲取如下信息:

分區1的起始地址是2710H,即十進制的10000,長度是986f71H,即十進制9990001

分區2的起始地址是989681H,即十進制10000001,長度是0142357fh,即十進制21116287.

這些數據和以上我們計算的完全吻合。

對於SD卡,MMCSSD等,由於物理地址是線性的,因此沒有磁頭,柱面等概念,因此這些數據一般來說,沒有意義。


Exfat文件系統。


Exfat文件系統是微軟發佈的一個類FAT的文件系統規範,支持大於4G的文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章