MBR ( Main Boot Record )位于硬盤第一個(gè)物理扇區(qū)(絕對(duì)扇區(qū))柱面 0 ,磁頭 0 ,扇區(qū) 1 (簡(jiǎn)化成( 0 , 0 , 1 ))處。由于 DOS 是由柱面 0 ,磁頭 1 ,扇區(qū) 1 開始,故 MBR 不屬于 DOS 扇區(qū), DOS 不能直接訪問。 MBR 中包含硬盤的主引導(dǎo)程序和硬盤分區(qū)表。分區(qū)表有 4 個(gè)分區(qū)記錄區(qū),這也就是我們?yōu)槭裁粗荒茉谟脖P里最多擁有 4 個(gè)主分區(qū)的原因了。記錄區(qū)就是記錄有關(guān)分區(qū)信息的一張表。它從主引導(dǎo)記錄( MBR )偏移地址 01BEH 處連續(xù)存放,每個(gè)分區(qū)記錄區(qū)占 16 個(gè)字節(jié)。
下面用我的硬盤的分區(qū)表來詳細(xì)解釋一下分區(qū)表各區(qū)段的具體含義。
偏移位置 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 0b | 0c | 0d | 0e | 0f |
00000000 | 33 | c0 | 8e | d0 | bc | 00 | 7c | fb | 50 | 07 | 50 | 1f | fc | be | 1b | 7c |
………… | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
000001b0 | 00 | 00 | 00 | 00 | 00 | 2c | 44 | 63 | 60 | 65 | 50 | 65 | 00 | 00 | 80 | 01 |
000001c0 | 01 | 00 | 07 | fe | bf | fc | 3f | 00 | 00 | 00 | 7e | 86 | bb | 00 | 00 | 00 |
000001d0 | 81 | fd | 0f | c5 | fe | ff | bd | 86 | bb | 00 | 43 | 3b | 6b | 01 | 00 | 00 |
000001e0 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
000001f0 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 55 | aa |
要說明的是:這里講的“分區(qū)”,確切說是:主分區(qū)。擴(kuò)展分區(qū)也當(dāng)成主分區(qū),擴(kuò)展分區(qū)內(nèi)部的分區(qū)信息不在 MBR 里面。
要注意的是,在這里出現(xiàn)的數(shù)字均是 16 進(jìn)制數(shù)。
下面就分區(qū)記錄這 16 個(gè)字節(jié)再詳細(xì)解釋一下,以我的第一個(gè)分區(qū)為例:
偏移位置 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 0b | 0c | 0d | 0e | 0f |
000001b0 | | | | | | | | | | | | | | | 80 | 01 |
000001c0 | 01 | 00 | 07 | fe | bf | fc | 3f | 00 | 00 | 00 | 7e | 86 | bb | 00 | | |
80 分區(qū)狀態(tài)( 80H 表示為激活分區(qū), 00H 表示為非激活分區(qū))
01 分區(qū)的開始磁頭
01 00 分區(qū)的開始柱面和扇區(qū)(這個(gè)地方有點(diǎn)玄機(jī),等會(huì)再詳細(xì)解釋)
07 分區(qū)的類型( 0c 表示為 FAT32 , 07 為 NTFS , 0f 代表擴(kuò)展)
fe 分區(qū)的結(jié)束磁頭
bf fc 分區(qū)的結(jié)束柱面和扇區(qū)(表示同開始磁頭,等會(huì)詳解)
3f 00 00 00 從 MBR 到第一個(gè)分區(qū)扇區(qū)的扇區(qū)個(gè)數(shù)(分區(qū)前的扇區(qū)數(shù))
7e 86 bb 00 分區(qū)的總扇區(qū)數(shù)
也就是說我的第一個(gè)分區(qū)是一個(gè)從( 0,1,1 )位置開始的可引導(dǎo)的 NTFS 格式的分區(qū)。結(jié)束位置是( 764,254,63 )容量為: 5.86G 。
下面說一下這些數(shù)據(jù)具體是怎么得來的。
1b00e 位置的 80 是分區(qū)狀態(tài),上面已經(jīng)說清楚了,這里就不再多說。
1b00f 位置的 01 是分區(qū)開始的磁頭數(shù),磁頭數(shù)是從 0 到 254 的整數(shù),這里用的是 2 位的十六進(jìn)制數(shù)表示。 (01)HEX=(1)DEC 。
1c000-1c001 位置的 01 00 合在一起,表示的是分區(qū)開始的柱面和磁頭數(shù)。我們知道,一位的 16 進(jìn)制數(shù)可以轉(zhuǎn)換成 4 位的二進(jìn)制數(shù)。那么,將這兩個(gè)兩位的 16 進(jìn)制數(shù)轉(zhuǎn)換分別轉(zhuǎn)換成 2 進(jìn)制數(shù)就是: (01)HEX = (0000 0001)BIN (00)HEX=(0000 0000)BIN 。然后,取前面的 (01)HEX 的二進(jìn)制的后六位,也就是 (000001)BIN ,他就代表了分區(qū)開始的扇區(qū)數(shù),也就是 1 。這樣取了以后, (01)HEX 還剩下高位的兩個(gè)數(shù),這兩個(gè)數(shù)放到 (00)HEX 轉(zhuǎn)成的二進(jìn)制數(shù)的前面,就構(gòu)成了一個(gè) 10 位的二進(jìn)制數(shù),表示的是分區(qū)開始的柱面數(shù)。到這里,分區(qū)開始位置就確定了。
1c002 位置的 07 表示分區(qū)類型—— NTFS
1c003-1c005 位置的 fe bf fc 表示分區(qū)的結(jié)束位置, fe 代表磁頭數(shù)。 (fe)HEX = (254)10 。然后, (bf)HEX = (1011 1111)BIN (fc)HEX = (1111 1100)BIN ,按照前面說的,取 1011 1111 的后六位,得到 (11 1111)BIN = (63)DEC 也就是說結(jié)束的扇區(qū)是 63 。最后, (10 1111 1100)BIN = (764)DEC ,即表示結(jié)束柱面為 764 。 ( 表示開始和結(jié)束位置的這幾位,可以說是分區(qū)表中最復(fù)雜的地方了,看了很多文章,都沒怎么講清楚,希望我這里講的比較清楚了。 )
1c006-1c009 位置的 3f 00 00 00 表示的是分區(qū)前面的扇區(qū)數(shù),我們需要倒過來看這串?dāng)?shù)字,也就是看成 (00 00 00 3f)HEX = (63)DEC ,說明分區(qū)開始前的扇區(qū)數(shù)是 63( 這個(gè)分區(qū)從 (0,1,1) 位置開始,前面當(dāng)然就是一個(gè)磁頭的扇區(qū)數(shù) 63 了 ) 。
1c00a-1c00d 位置的 7e 86 bb 00 表示的是分區(qū)內(nèi)的扇區(qū)總數(shù),和上面一樣,倒過來看成是 (00 bb 86 7e)HEX = (12289662)DEC 。扇區(qū)總數(shù)=(結(jié)束柱面-起始柱面+ 1 )×磁頭數(shù) (255) ×每柱面扇區(qū)數(shù) (63) 。分區(qū)容量=扇區(qū)數(shù)×每扇區(qū)字節(jié)數(shù) (512) 得到單位為字節(jié),再每除以 1024 ,就向 KByte 、 MByte 、 GByte 轉(zhuǎn)換。
聯(lián)系客服