您好朋友,感謝您關(guān)注xiaosilent,我在blogjava的博客已經(jīng)停止更新,請(qǐng)?jiān)L問http://kuan.fm了解我的最新情況,謝謝!
          隨筆-82  評(píng)論-133  文章-0  trackbacks-0

          最近接觸到一個(gè) 0 磁道損壞的硬盤,做數(shù)據(jù)恢復(fù),有機(jī)會(huì)學(xué)習(xí)了一下分區(qū)表的結(jié)構(gòu)。在這里簡(jiǎn)要的做點(diǎn)筆記。

          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

          ????????????? 000 ~ 1bd???? ? 446 字節(jié))可執(zhí)行代碼區(qū)段

          ????????????? 1be ~ 1cd?????? 016 字節(jié))第一個(gè)分區(qū)入口(參數(shù)解釋見下)

          ????????????? 1ce ~ 1dd?????? 016 字節(jié))第二個(gè)分區(qū)入口(同第一個(gè)分區(qū))

          ????????????? 1de ~ 1ed?????? 016 字節(jié))第三個(gè)分區(qū)入口(同第一個(gè)分區(qū))

          ????????????? 1ee ~ 1fd???????? 016 字節(jié))第四個(gè)分區(qū)人口(同第一個(gè)分區(qū))

          ????????????? 1fe ~ 1ff 002 字節(jié))引導(dǎo)記錄標(biāo)志位(固定值: 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)換。

          posted on 2006-10-16 10:32 xiaosilent 閱讀(1295) 評(píng)論(1)  編輯  收藏 所屬分類: Linux相關(guān)

          評(píng)論:
          # re: 解讀硬盤分區(qū)表[未登錄] 2008-09-26 23:14 | thomas
          學(xué)習(xí)了,我一直看不懂分區(qū)表而頭痛,謝謝了!!  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 星子县| 五峰| 盘山县| 木兰县| 稻城县| 通州市| 江城| 城固县| 梅河口市| 葫芦岛市| 兰坪| 武威市| 鹤庆县| 濮阳市| 延寿县| 岑巩县| 郧西县| 化隆| 汉寿县| 乌鲁木齐市| 大英县| 东光县| 泰和县| 孟连| 东乌珠穆沁旗| 牙克石市| 台山市| 大荔县| 固阳县| 章丘市| 南江县| 中方县| 武胜县| 鹤峰县| 扶绥县| 东丰县| 呼和浩特市| 容城县| 山丹县| 沅江市| 乌海市|