FAT文件系統(tǒng)原理_第1頁
FAT文件系統(tǒng)原理_第2頁
FAT文件系統(tǒng)原理_第3頁
FAT文件系統(tǒng)原理_第4頁
FAT文件系統(tǒng)原理_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、FAT文件系統(tǒng)原理一、硬盤的物理結(jié)構(gòu):硬盤存儲(chǔ)數(shù)據(jù)是根據(jù)電、磁轉(zhuǎn)換原理實(shí)現(xiàn)的。硬盤由一個(gè)或幾個(gè) 表面鍍有磁性物質(zhì)的金屬或玻璃等物質(zhì)盤片以及盤片兩面所安裝的 磁頭和相應(yīng)的控制電路組成(圖1),其中盤片和磁頭密封在無塵的金 屬殼中。硬盤工作時(shí),盤片以設(shè)計(jì)轉(zhuǎn)速高速旋轉(zhuǎn),設(shè)置在盤片表面的磁頭 則在電路控制下徑向移動(dòng)到指定位置然后將數(shù)據(jù)存儲(chǔ)或讀取出來。當(dāng)系統(tǒng)向硬盤寫入數(shù)據(jù)時(shí),磁頭中 寫數(shù)據(jù)”電流產(chǎn)生磁場使盤片表面磁 性物質(zhì)狀態(tài)發(fā)生改變,并在寫電流磁場消失后仍能保持,這樣數(shù)據(jù)就 存儲(chǔ)下來了;當(dāng)系統(tǒng)從硬盤中讀數(shù)據(jù)時(shí),磁頭經(jīng)過盤片指定區(qū)域,盤 片表面磁場使磁頭產(chǎn)生感應(yīng)電流或線圈阻抗產(chǎn)生變化,經(jīng)相關(guān)電路處理后還

2、原成數(shù)據(jù)。因此只要能將盤片表面處理得更平滑、磁頭設(shè)計(jì)得 更精密以及盡量提高盤片旋轉(zhuǎn)速度,就能造出容量更大、讀寫數(shù)據(jù)速 度更快的硬盤。這是因?yàn)楸P片表面處理越平、轉(zhuǎn)速越快就能越使磁頭 離盤片表面越近,提高讀、寫靈敏度和速度;磁頭設(shè)計(jì)越小越精密就能使磁頭在盤片上占用空間越小, 使磁頭在一張盤片上建立更多的磁 道以存儲(chǔ)更多的數(shù)據(jù)。二、硬盤的邏輯結(jié)構(gòu)。硬盤由很多盤片(platter)組成,每個(gè)盤片的每個(gè)面都有一個(gè)讀寫 磁頭。如果有N個(gè)盤片。就有2N個(gè)面,對應(yīng)2N個(gè)磁頭(Heads),從 0、1、2開始編號(hào)。每個(gè)盤片被劃分成若干個(gè)同心圓磁道(邏輯上的,是不可見的。 )每個(gè)盤片的劃分規(guī)則通常是一樣的。這樣每

3、個(gè)盤片的 半徑均為固定值 R 的同心圓再邏輯上形成了一個(gè)以電機(jī)主軸為軸的 柱面(Cylinders),從外至里編號(hào)為 0、1、2每個(gè)盤片上的每個(gè)磁 道又被劃分為幾十個(gè)扇區(qū)(Sector),通常的容量是512byte,并按照一 定規(guī)則編號(hào)為1、2、3形成Cylinders HeadsSector個(gè)扇區(qū)。這三個(gè)參數(shù)即是硬盤的物理參數(shù)。 我們下面的很多實(shí)踐需要深刻理解這 三個(gè)參數(shù)的意義。三、磁盤引導(dǎo)原理3.1MBR(MasterBootRecord)扇區(qū):諭問Offset00000000000000000010000000002000000000300000000040000000005000000

4、00060000000007000000000800000000090OOOOOOOOAOOOOOOOOOBOOOOOOQOOCOOOOOOOOODOOOOOOOOOEOOOOOOOOOFO0000000100000000011000000001200000000130000000014000000001500000000160000000017000000001300000000190OOOOOOOIAOOOOOOOOIBO00000001coOOOOOOOIDOOOOOOOOIEOOOOOOOOlfO0123456739ABCDEF33co甜DOBC007CFB500750IFPCBEIB

5、7CBFIBOS5057B9E501F3A4CBBDBE07Bl043E6E007C097E1383C510E2F4CD138BF5S3C6104974193S2C74F6A0BF;07B4078BF0AC3C0074FCEE0700陰0ECD10EBF2884E10E84600732AFE4610807E040B740B807E04oc7405A0B60775D2804602068346080683560A00ES21007305A0B607EBBC813EFE7D55AA740BSO7E100074CSAOB707EBA9SBFCIE57SBF5CBEF0500SA5600B403CD13

6、7223SACl243F93SAJESAFC43F7燹SBDI戲D6Bl06D2EE42F7E239560A7723720539q$08731CFR0102BB007C8B4E02SB5600CD1373514F744E32E48A5600CD13EB8A560060BBM55B441CD13723681FB55AA7530F6Cl01742B61606A006A00FF760AFF76086A0068007C6A016A10B442SBF4CD136161730E4F740B32E4SA5600CD13EBD661F9C3496E76616C696420706112746974的GFBE20

7、7461626C65OO4572726F72206C6F6164696E6720GF70657261羽696E6720737973%656D004D69737369GE67206F70657261%69GE672073形7374656D00000000000000000000000000000000000000000000000000000000000000OO00000000000000000000000000000000000000000000000000002C446333Bl33Bl0000SO01010007FEFF7B3F0000OO3DA3DA000000C1?COFFEFFFF

8、7CA8叫QA458FIE0DOO0000000000亦覺Jbt顧foto000000獄屑.鵰P. . I ?. pw瑰.螭私r?Lu.倉柑濮 麓It&備? R-t即劇 吆鐵.計(jì)糕齊.t 心t.輜.u禰F. * .傳.&軸.e 紛熾瞬.L.t夏 湮臓帳絲熱 梭迫Su C縻熠敘翌B麾9W .w#r. 9匚s.?.?h | 薇蝎?sQOtN2S 譏?脫箕-華咂1 .理枚皿狠0雋.t+aJ- J, V. 億 J.Fl.j. j?aas.Ot*.璉韌.?Ea Invaa lid partition ta bl e. Err or 1 oadi n g operating syst um Nissing

9、 opera ting system$ Dc3?. .00 00 00 00 00 00 00。如 0 00 00 00 00 00 55 AA 計(jì)算機(jī)在按下power鍵以后,開始執(zhí)行主板bios程序。進(jìn)行完一系列檢測和配置以后。開始按bios中設(shè)定的系統(tǒng)引導(dǎo)順序引導(dǎo)系統(tǒng)。假定現(xiàn)在是硬盤。Bios執(zhí)行完自己的程序后如何把執(zhí)行權(quán)交給硬 盤呢。交給硬盤后又執(zhí)行存儲(chǔ)在哪里的程序呢。 其實(shí),稱為mbr的一 段代碼起著舉足輕重的作用。MBR(masterbootrecord),即主引導(dǎo)記錄,有時(shí)也稱主引導(dǎo)扇區(qū)。位于整個(gè)硬盤的0柱面0磁頭1扇區(qū)(可以看作是硬盤的第一個(gè)扇區(qū)), bios在執(zhí)行自己固有的程序

10、以后就會(huì)jump到mbr中的第一條指令。將系統(tǒng)的控制權(quán)交由 mbr 來執(zhí)行。在總共 512byte 的主引導(dǎo)記錄中,MBR的引導(dǎo)程序占了其中的前446個(gè)字節(jié)(偏移0H偏移1BDH),隨 后的 64 個(gè)字節(jié)(偏移 1BEH偏移 1FDH)為 DPT(DiskPartitionTable, 硬盤分區(qū)表),最后的兩個(gè)字節(jié)“55AA偏移 仆EH偏移1FFH)是分區(qū) 有效結(jié)束標(biāo)志。MBR 不隨操作系統(tǒng)的不同而不同,意即不同的操作系統(tǒng)可能會(huì) 存在相同的 MBR ,即使不同, MBR 也不會(huì)夾帶操作系統(tǒng)的性質(zhì)。具 有公共引導(dǎo)的特性。我們來分析一段mbr。下面是用winhex查看的一塊希捷120GB 硬盤的

11、mbr。你的硬盤的 MBR 引導(dǎo)代碼可能并非這樣。不過即使不同,所執(zhí) 行的功能大體是一樣的。我們看 DPT 部分。操作系統(tǒng)為了便于用戶對磁盤的管理。加入 了磁盤分區(qū)的概念。 即將一塊磁盤邏輯劃分為幾塊。 磁盤分區(qū)數(shù)目的 多少只受限于CZ的英文字母的數(shù)目 在上圖 DPT共64個(gè)字節(jié)中 如何表示多個(gè)分區(qū)的屬性呢 ?microsoft 通過鏈接的方法解決了這個(gè)問 題。在 DPT 共 64個(gè)字節(jié)中,以 16 個(gè)字節(jié)為分區(qū)表項(xiàng)單位描述一個(gè) 分區(qū)的屬性。也就是說,第一個(gè)分區(qū)表項(xiàng)描述一個(gè)分區(qū)的屬性,一般般而為基本分區(qū)。第二個(gè)分區(qū)表項(xiàng)描述除基本分區(qū)外的其余空間,言,就是我們所說的擴(kuò)展分區(qū)。這部分的大體說明見表

12、1表L圉N分區(qū)表第一宇段宇節(jié)位移宇段長度11|字段名和定義OxOlBEBYTE0x80弓 1 導(dǎo)指(Boot Indic ator) 指明該分區(qū)是否是 活動(dòng)分氐。0x01BFBYTE0x01幵姑礒頭(Starting Hea dOXOICO合位OKtOlx (starting Sector)只用了口位p后面 的兩位第引立和第7彳立)被 開始柱面字段所使用OXOICIm立000幵姑柱面(Starting Cylin der) 除了幵始崩區(qū)字段 的垠后兩位外.還使用了1 位來組成該柱面值。開始 柱面是一個(gè)1 位救,最大 值為10230X01C2BYTE0x07ID(System ID)定義 了分區(qū)

13、的類型,詳細(xì)定 義.請參閱圖40x01C3BYTEOxFE結(jié)東磁頭(Endirig Head)0X01C45位OxFF結(jié)束扇區(qū)(E門dirig Secto r)只使用了口 5位。最后兩位(第0 7位)被緒 束柱面宇段所使用OxOlCSlOfeOx7B結(jié)束柱面(Eridirig Cylinde r)除了結(jié)束扇區(qū)字段最后 的兩位外,還使用了 1位, 以俎戍該柱面值“結(jié)束柱 面是一個(gè)1位的數(shù),最大 值為1口230XIZI1C6DWORD0x0000003F相對扇lK(Relative Sec tors)從該磁盤的開始到 該分區(qū)的開始的位移量, 段扇區(qū)來計(jì)算OxOlCADWORDxOODAA83D總扇

14、區(qū)救Tot日1 Sector s)該分區(qū)中的扇區(qū)總數(shù)表1圖2分區(qū)表第一字段字節(jié)位移字段長度值字段名和定義aster Boot Recor基礎(chǔ)AS移星:Offset標(biāo)題St值Parti ti on Table Entry #3mmmmmwmm22“百66PCOO23446A EEEEEEEE0x01BEBYTE0x80 引導(dǎo)指示符 (BootIndicator) 指明該分區(qū)是否是 活動(dòng)分區(qū)。0x01BFBYTE0x01 開始磁頭 (StartingHead)0x01C06位0x01開始扇區(qū)(StartingSector)只用了 05位。后面的 兩位(第 6 位和第 7 位)被開始柱面字段所使用0

15、x01C110位0x00開始柱面(StartingCylinder)除了開始扇區(qū)字段的最后兩位外,還使用了 1 位來組成該柱面值。開始柱面是一個(gè) 10 位數(shù),最大值為 10230x01C2BYTE0X07系統(tǒng)ID(SystemlD)定義了分區(qū)的類型,詳細(xì)定 義,請參閱圖 4分區(qū)類型杯倉乂00 空moerosof t不允許便用口 01 FAT3202 XENIX root03 XENIX ur04 FAT16 8GB)10 OPU呂11 Hidden FAP1212 Compaq d i agnost16 HiddenFATIK14 Hidden FAT1663個(gè)扇區(qū) 256個(gè)磁頭 血12byt

16、e=8455716864byte即通常的8.4GB(實(shí)際上應(yīng)該 是 7.8GB 左右)限制。實(shí)際上磁頭數(shù)通常只用到 255個(gè)(由匯編語言的 尋址寄存器決定 ),即使把這 3 個(gè)字節(jié)按線性尋址,依然力不從心。在 后來的操作系統(tǒng)中,超過8.4GB的分區(qū)其實(shí)已經(jīng)不通過 C/H/S的方式 尋址了。而是通過偏移CH偏移FH共4個(gè)字節(jié)32位線性扇區(qū)地址 來表示分區(qū)所占用的扇區(qū)總數(shù)。可知通過 4個(gè)字節(jié)可以表示2八32個(gè) 扇區(qū),即2TB=2048GB,目前對于大多數(shù)計(jì)算機(jī)而言,這已經(jīng)是個(gè)天 文數(shù)字了。在未超過8.4GB的分區(qū)上,C/H/S的表示方法和線性扇區(qū) 的表示方法所表示的分區(qū)大小是一致的。 也就是說,

17、兩種表示方法是 協(xié)調(diào)的。即使不協(xié)調(diào),也以線性尋址為準(zhǔn)。 (可能在某些系統(tǒng)中會(huì)提 示出錯(cuò) )。超過 8.4GB 的分區(qū)結(jié)束 C/H/S 一般填充為 FEHFFHFFH。 即 C/H/S 所能表示的最大值。 有時(shí)候也會(huì)用柱面對 1024的模來填充。 不過這幾個(gè)字節(jié)是什么其實(shí)都無關(guān)緊要了。雖然現(xiàn)在的系統(tǒng)均采用線性尋址的方式來處理分區(qū)的大小。 但不可跨柱面的原則依然沒變。 本分區(qū)的扇區(qū)總數(shù)加上與前一分區(qū)之間的 保留扇區(qū)數(shù)目依然必須是柱面容量的整數(shù)倍。 (保留扇區(qū)中的第一個(gè) 扇區(qū)就是存放分區(qū)表的 MBR 或虛擬 MBR 的扇區(qū),分區(qū)的扇區(qū)總數(shù) 在線性表示方式上是不計(jì)入保留扇區(qū)的。 如果是第一個(gè)分區(qū), 保

18、留扇 區(qū)是本分區(qū)前的所有扇區(qū)。3.2 擴(kuò)展分區(qū):擴(kuò)展分區(qū)中的每個(gè)邏輯驅(qū)動(dòng)器都存在一個(gè)類似于 MBR 的擴(kuò)展引 導(dǎo)記錄(ExtendedBootRecord,EBR),也有人稱之為虛擬mbr或擴(kuò)展mbr,意思是一樣的。擴(kuò)展引導(dǎo)記錄包括一個(gè)擴(kuò)展分區(qū)表和該扇區(qū)的 標(biāo)簽。擴(kuò)展引導(dǎo)記錄將記錄只包含擴(kuò)展分區(qū)中每個(gè)邏輯驅(qū)動(dòng)器的第一 個(gè)柱面的第一面的信息。 一個(gè)邏輯驅(qū)動(dòng)器中的引導(dǎo)扇區(qū)一般位于相對 扇區(qū) 32或63。但是,如果磁盤上沒有擴(kuò)展分區(qū),那么就不會(huì)有擴(kuò)展 引導(dǎo)記錄和邏輯驅(qū)動(dòng)器。 第一個(gè)邏輯驅(qū)動(dòng)器的擴(kuò)展分區(qū)表中的第一項(xiàng) 指向它自身的引導(dǎo)扇區(qū)。第二項(xiàng)指向下一個(gè)邏輯驅(qū)動(dòng)器的EBR。如果不存在進(jìn)一步的邏輯驅(qū)動(dòng)器

19、, 第二項(xiàng)就不會(huì)使用, 而且被記錄成一 系列零。如果有附加的邏輯驅(qū)動(dòng)器, 那么第二個(gè)邏輯驅(qū)動(dòng)器的擴(kuò)展分 區(qū)表的第一項(xiàng)會(huì)指向它本身的引導(dǎo)扇區(qū)。 第二個(gè)邏輯驅(qū)動(dòng)器的擴(kuò)展分 區(qū)表的第二項(xiàng)指向下一個(gè)邏輯驅(qū)動(dòng)器的EBR。擴(kuò)展分區(qū)表的第三項(xiàng)和第四項(xiàng)永遠(yuǎn)都不會(huì)被使用通過一幅4分區(qū)的磁盤結(jié)構(gòu)圖可以看到磁盤的大致組織形式。 如圖5:邏作超動(dòng)器涯1動(dòng)僵擴(kuò)展分區(qū)第分區(qū)表頂?shù)?分區(qū)表頂?shù)?分區(qū)表項(xiàng)第4分區(qū)表頂0x55 AA引導(dǎo)扁區(qū)引導(dǎo)扁區(qū)引導(dǎo)扇區(qū)擴(kuò)展分區(qū)表0x55 AA引導(dǎo)扇區(qū)擴(kuò)展分區(qū)表0x55 AA弓1導(dǎo)扁醫(yī)基本分區(qū)3展弓I!基本分區(qū)1基本分區(qū)2住弓|導(dǎo)記頼區(qū)!展主引圖5 個(gè)疔分IX的基本鐵器關(guān)于擴(kuò)展分區(qū),如圖6所

20、示,擴(kuò)展分區(qū)中邏輯驅(qū)動(dòng)器的擴(kuò)展引導(dǎo) 記錄是一個(gè)連接表。該圖顯示了一個(gè)擴(kuò)展分區(qū)上的三個(gè)邏輯驅(qū)動(dòng)器, 說明了前面的邏輯驅(qū)動(dòng)器和最后一個(gè)邏輯驅(qū)動(dòng)器之間在擴(kuò)展分區(qū)表 中的差異除了擴(kuò)展分區(qū)上最后一個(gè)邏輯驅(qū)動(dòng)器外, 表2中所描述的擴(kuò)展分 區(qū)表的格式在每個(gè)邏輯驅(qū)動(dòng)器中都是重復(fù)的: 第一個(gè)項(xiàng)標(biāo)識(shí)了邏輯驅(qū) 動(dòng)器本身的引導(dǎo)扇區(qū),第二個(gè)項(xiàng)標(biāo)識(shí)了下一個(gè)邏輯驅(qū)動(dòng)器的 EBR。 最后一個(gè)邏輯驅(qū)動(dòng)器的擴(kuò)展分區(qū)表只會(huì)列出它本身的分區(qū)項(xiàng)。 最后一 個(gè)擴(kuò)展分區(qū)表的第二個(gè)項(xiàng)到第四個(gè)項(xiàng)被使用。表2擴(kuò)展分區(qū)表項(xiàng)的內(nèi)容表2擴(kuò)展二擴(kuò)展臂區(qū)表項(xiàng)分區(qū)表項(xiàng)的內(nèi)容|第一個(gè)項(xiàng)包括數(shù)據(jù)的開始地址在內(nèi)的與擴(kuò)展分區(qū) 中當(dāng)前邏輯驅(qū)動(dòng)器有關(guān)的信息第二個(gè)項(xiàng)有關(guān)

21、擴(kuò)展分區(qū)中的下一個(gè)邏輯驅(qū)動(dòng)器的 信息,包捂包含下一個(gè)邏輯驅(qū)動(dòng)器的EBR的扇區(qū)的地址。如果不存在進(jìn)一步的 邏輯驅(qū)動(dòng)器的話,讀宇段不會(huì)被使用第三個(gè)項(xiàng)未用|第四*項(xiàng)未用|擴(kuò)展分區(qū)表項(xiàng)分區(qū)表項(xiàng)的內(nèi)容第一個(gè)項(xiàng)包括數(shù)據(jù)的開始地址在內(nèi)的與擴(kuò)展分區(qū)中當(dāng)前邏輯驅(qū)動(dòng)器有關(guān)的信息第二個(gè)項(xiàng)有關(guān)擴(kuò)展分區(qū)中的下一個(gè)邏輯驅(qū)動(dòng)器的信息,包括包含下一個(gè)邏輯驅(qū)動(dòng)器的EBR的扇區(qū)的地址。如果不存在進(jìn)一步的邏輯 驅(qū)動(dòng)器的話,該字段不會(huì)被使用第三個(gè)項(xiàng)未用第四個(gè)項(xiàng)未用擴(kuò)展分區(qū)表項(xiàng)中的相對扇區(qū)數(shù)字段所顯示的是從擴(kuò)展分區(qū)開始 到邏輯驅(qū)動(dòng)器中第一個(gè)扇區(qū)的位移的字節(jié)數(shù)。 總扇區(qū)數(shù)字段中的數(shù)是 指組成該邏輯驅(qū)動(dòng)器的扇區(qū)數(shù)目。 總扇區(qū)數(shù)字段的值等于

22、從擴(kuò)展分區(qū) 表項(xiàng)所定義的引導(dǎo)扇區(qū)到邏輯驅(qū)動(dòng)器末尾的扇區(qū)數(shù)。有時(shí)候在磁盤的末尾會(huì)有剩余空間, 剩余空間是什么呢?我們前 面說到,分區(qū)是以 1 柱面的容量為分區(qū)粒度的, 那么如果磁盤總空間 不是整數(shù)個(gè)柱面的話,不夠一個(gè)柱面的剩下的空間就是剩余空間了, 這部分空間并不參與分區(qū),所以一般無法利用。照道理說,磁盤的物 理模式?jīng)Q定了磁盤的總?cè)萘烤蛻?yīng)該是整數(shù)個(gè)柱面的容量, 為什么會(huì)有 不夠一個(gè)柱面的空間呢。 在我的理解看來, 本來現(xiàn)在的磁盤為了更大 的利用空間,一般在物理上并不是按照外圍的扇區(qū)大于里圈的扇區(qū)這 種管理方式,只是為了與操作系統(tǒng)兼容而抽象出來CHS??赡芷鋵?shí)際空間容量不一定正好為整數(shù)個(gè)柱面的容量

23、吧。四、FAT分區(qū)原理。先來一幅結(jié)構(gòu)圖:根目錄覺個(gè)保気扇區(qū)(系統(tǒng)扇區(qū))根目錄AuNizNWMM 樹現(xiàn)在我們著重研究FAT格式分區(qū)內(nèi)數(shù)據(jù)是如何存儲(chǔ)的。FAT分區(qū) 格式是MICROSOFT最早支持的分區(qū)格式,依據(jù) FAT表中每個(gè)簇鏈 的所占位數(shù)(有關(guān)概念,后面會(huì)講到)分為fat12、fat16、fat32三種格 式變種,但其基本存儲(chǔ)方式是相似的。仔細(xì)研究圖7中的fat16和fat32分區(qū)的組成結(jié)構(gòu)。下面依次解釋DBR、FAT1、FAT2、根目錄、數(shù)據(jù)區(qū)、剩余扇區(qū)的概念。提到的地 址如無特別提示均為分區(qū)內(nèi)部偏移。4.1 關(guān)于 DBR.DBR區(qū)(DOSBOOTRECORD)即操作系統(tǒng)引導(dǎo)記錄區(qū)的意思,

24、通 常占用分區(qū)的第 0扇區(qū)共 51 2個(gè)字節(jié)(特殊情況也要占用其它保留扇 區(qū),我們先說第 0扇)。在這 5 1 2個(gè)字節(jié)中,其實(shí)又是由跳轉(zhuǎn)指令, 廠商標(biāo)志和操作系統(tǒng)版本號(hào),BPB(BIOSParameterBlock),擴(kuò)展BPB, os引導(dǎo)程序,結(jié)束標(biāo)志幾部分組成。以用的最多的 FAT32為例說明 分區(qū) DBR 各字節(jié)的含義。見圖 8。Offset0123 45 67 89ABCDEF對應(yīng)字符00000000EE 58 90 4D 53 57 49 4E 34 2E 31 00 02 08 20 00隅悉swim.i.0000001002 00 00 00 00 F3 00 00 3F 00

25、 FF 00 3F 00 00 009 9Q! V * V 000000203F 04 7D 00 32 IF 00 00 00 00 00 00 02 00 00 00?. 20000003001 00 06 00 00 00 00 00 00 00 QO 00 00 00 00 QO0000004080 00 29 FE 1C 39 33 4E 4F 20 4E 41 4D 45 20 20)?93WO HAHE0000005020 20FA 33 C9 SE DI ECFAT32?薩鴨00000060FB 7B 8E Cl ED 7S 00 C5 76 00 IE 56 16 55 BF

26、 220000007005 89 ?E 00 89 4E 02 Bl OB FC F3 A4 8E D9 BD 00曲愷?000000807C C6 45 FE OF 85 46 18 S3 45 F9 38 4E 40 7D 25E?n%000000908B Cl 99 BE 00 07 E8 97 00 ?2 1A 83 EE 3A 66 Al養(yǎng)i研亠得:f?OOOOOOAO1C 7C 6S 3B 07 8A 57 FC 75 06 80 CA 02 83 56 02上;”奧鹽田均OOOOOOBO80 C3 10 73 ED BF 02 00 83 7E 16 00 75 45 8E 46

27、E?s飆八脩.uE嫦OOOOOOCO1C 8B 56 IE E9 03 00 49 40 75 01 42 BE 00 ?E E8.鳳?.琬心B?*?OOOOOODO5F 00 73 飯 EO F3 4F 74 ID 3B 46 32 33 D2 B9 03_話傍Ot.jW 23夜.OOOOOOEO00 3B C3 77 IE 8B 76 OE 3B CE 73 17 2B Fl OS 46.臺(tái).媒.;蠟+?FOOOOOOFO1C 13 56 IE EE DI 73 OB EE 27 83 7E 2A 00 ?7 03.v. s.v.00000100E9 FD 02 BE YE 7D AC 9

28、803 FO AC 84 CO 74 17 3C輦細(xì)瑯誌勒00000110FF 74 09 B4 OE BE 07 00 CD 10 EB EE BE 81 7D EB00000120E5 BE 7F 7D ES EO 98 CD 16 5E IF 66 SF 04 CD 19W 豚扱)?0000013041 56 66 6A 00 52 50 0653 6A 01 6A 10 8B F4 SOAVf j.RP. sj.0000014080 7E 02 OE 75 04 B4 42 E3 ID 91 92 33 D2 F7 76u薯?僚3吟00000150IS 91 F7 76 18 42 8

29、7 CA F7 76 1A 8A F2 8A ES CO.PE00000160CC 02 OA CC B8 01 02 8A 56 40 CD 13 61 8D 64 10億謹(jǐn).槳魚簡.000001705E 72 OA 40 75 01 42 03 5E OB 49 75 B4 C3 OD OAr, u. B. . Iu 疵*0000018049 6E 76 61 6C 69 64 2073 79 73 74 65 6D 20 64Invalid system d0000019069 73 6B OD OA 44 69 73 6B 20 49 2F 4F 20 65 72isk. .Bisk

30、I/O er000001A072 6F 72 OD OA 52 65 70 6C 61 63 65 20 74 68 65ror. - Replace the000001B020 64 69 73 6E 2C 20 61 6E 64 20 74 6S 65 6E 20diskj and then00000ICO70 72 65 73 73 20 61 6E 79 20 6B 65 79 OD OA 00press any key* .00000IDO6E 65 ?9 OD OA 00 00 00 49 4F 20 20 20 20 20 20key.,. T. IO000001E053 59

31、53 4D 53 44 4F 5320 20 20 53 50 53 7E 01SYSMSDOS SYS二000001F000 57 49 4E 42 4F 4F 5420 53 E9 53 00 00 55 AA.TOTOOOT STS. U圖8的對應(yīng)解釋見表3表3 FAT32分區(qū)上DBR中各部 分的位置劃分節(jié)移 一度 長 字名 字對應(yīng)圖品色O OX節(jié) 字 個(gè)3Q2節(jié) 字8B OXPB B400X節(jié) 字 個(gè)62程碼1XOE0XFSr表3FAT32分區(qū)上DBR中各部分的位置劃分Sector FAT32,基稚編務(wù)量:00JlflF i ns true t i. anEB 58 903OEMHSW

32、IM4.1BIOSParameter BlockBBytes per sector12DSectors per clusterEEReserved! sectorsf3210Numter of FATs211Root entries (unused.)LI13Sectors Con small volumes)015Uedi a descriptor Qiex)F316Sectors per FAT (sml vol.a13Sectors per track631AHe&ds2551CMi dden scIqts6320Sectors (an large VQlums)0193037標(biāo)題數(shù)值O

33、ffset24rs per FAT2&Fl覽空2AVtrsi on2CKact dir 1 st clustir30FSInfo sector32Backup boot sector34CRtserved)40BIOS drive (hen, HD=斗1(Unu 詐 d42Ext boot si43Volume serial numbar43Volume serial numb er4TVolume label52Filt systtm rftkWWW* 9Jnr-1FESignature (55 AA)(29h)FAT32 Station7986CiCi00 00 00 00 OQ 0000

34、 00 00 00 00 00(decimal)Che)字節(jié)位移字段長度字段名對應(yīng)圖8顏色0x003個(gè)字節(jié)跳轉(zhuǎn)指令0x038個(gè)字節(jié)廠商標(biāo)志和os版本號(hào)0x0B53個(gè)字節(jié)BPB0x4026 個(gè)字節(jié)擴(kuò)展 BPB0x5A420 個(gè)字節(jié)引導(dǎo)程序代碼0x01FE2 個(gè)字節(jié)有效結(jié)束標(biāo)志圖 9 給出了 winhex 對圖 8DBR 的相關(guān)參數(shù)解釋:根據(jù)上邊圖例,我們來討論 DBR 各字節(jié)的參數(shù)意義。MBR 將 CPU 執(zhí)行轉(zhuǎn)移給引導(dǎo)扇區(qū), 因此,引導(dǎo)扇區(qū)的前三個(gè)字 節(jié)必須是合法的可執(zhí)行的基于 X86的CPU指令。這通常是一條跳轉(zhuǎn) 指令,該指令負(fù)責(zé)跳過接下來的幾個(gè)不可執(zhí)行的字節(jié) (BPB 和擴(kuò)展 BPB),跳

35、到操作系統(tǒng)引導(dǎo)代碼部分。跳轉(zhuǎn)指令之后是 8 字節(jié)長的 OEMID ,它是一個(gè)字符串, OEMID 標(biāo)識(shí)了格式化該分區(qū)的操作系統(tǒng)的名稱和版本號(hào)。為了保留與 MS-DOS 的兼容性,通常 Windows2000 格式化該盤是在 FAT16 和 FAT32磁盤上的該字段中記錄了 “ MSD0S5.”在NTFS磁盤上(關(guān)于 ntfs,另述),Windows2000 記錄的是 “NTFS。通常在被 Windows95 格 式 化 的 磁 盤 上 OEMID 字 段 出 現(xiàn) “MSWIN4.0”, 在 被 Windows95OSR2 和 Windows98 格式化的磁盤上 OEMID 字段出現(xiàn)“ MSWI

36、N4.1”接下來的從偏移 0X0B 開始的是一段描述能夠使可執(zhí)行引導(dǎo)代碼 找到相關(guān)參數(shù)的信息。通常稱之為 BPB(BIOSParameterBlock), BPB 一般開始于相同的位移量, 因此,標(biāo)準(zhǔn)的參數(shù)都處于一個(gè)已知的位置。 磁盤容量和幾何結(jié)構(gòu)變量都被封在 BPB 之中。由于引導(dǎo)扇區(qū)的第一 部分是一個(gè) x86 跳轉(zhuǎn)指令。因此,將來通過在 BPB 末端附加新的信 息,可以對 BPB 進(jìn)行擴(kuò)展。只需要對該跳轉(zhuǎn)指令作一個(gè)小的調(diào)整就 可以適應(yīng) BPB 的變化。圖 9 已經(jīng)列出了項(xiàng)目的名稱和取值,為了系 統(tǒng)的研究,針對圖8,將FAT32分區(qū)格式的BPB含義和擴(kuò)展BPB含 義釋義為表格,見表 4 和表

37、 5。表4 FAT32分區(qū)的BPB字段|字節(jié)字段 長度圖8就 應(yīng)取值名稱和定義OxOB20x0200扇區(qū)字節(jié)數(shù)(Bytes Per Sec tor)硬祚扇區(qū)的大本字 段合法的十進(jìn)制值有512、 1024、2048和4096。對 大多數(shù)磁盤來說,本字段的 值為512OxOD10x08每簇扇區(qū)數(shù)(Sectors Per C luster),B中直療區(qū)數(shù)。 由于FAT32文件系統(tǒng)只能跟 蹤有限個(gè)簇(最多為4 294 9 67 296個(gè)),因此,通過增 加每簇扇區(qū)數(shù),可以使FAT 證邨辭鋼、 取決于該分區(qū)的大小。本字 段的合法十進(jìn)制值有1、2、4、8、16、32、64和 128。Windows 200

38、0的FAT 32實(shí)現(xiàn)只能創(chuàng)建最大為32G B的分藝但懇Windows 2000能夠訪問由其他操作 系統(tǒng)(Windows 95、OSR 2及苴以蠶叟番齊薩創(chuàng)建的OxOe20x0020保留扇區(qū)數(shù)(Reserved Sec 寵蟲-鑑麟評星 字段的十進(jìn)制值一般為32OxlO10x02FAT數(shù)(Number of FAT)該分區(qū)FAT的副本數(shù)。未 字段的值一般為2Oxll20x0000根目錄項(xiàng)數(shù)(Root Entries) 只有FAT12/FAT16使用此 字段。對FAT32分區(qū)而言 本字段必須設(shè)置為00x1320x0000小扇區(qū)數(shù)(Small Sector) (只有FAT12/FAT16使用此 字段)

39、對FAT32分區(qū)而言, 殺字段必須設(shè)直為00x1510xF8媒體描述符(Media Descri ptor)提供著關(guān)媒體被使用酹信息。值0XF8表示硬盤, OxFO表示高密度的3.5寸軟 盤。媒體描述符要用于MSDOS FAT16磁盤,在Wind ows 2000中未被使用表5 FAT32分區(qū)的擴(kuò)展BPB字段字節(jié) 位移長度 II圖8淮應(yīng)字段名稱和定義0x4010x80物理驅(qū)動(dòng)器號(hào)(PhysicalDrive Number) 4BIOS 物理驅(qū)動(dòng)器號(hào)有矣.軟盤驅(qū) 動(dòng)器被標(biāo)識(shí)為0x00,物理 硬盤極掾識(shí)為0x86而與 觸瞬驅(qū)動(dòng)器無關(guān)口 般 地,在發(fā)出一個(gè)INT13h B IOS調(diào)用之前藝置譜值*

40、體指定所訪問的設(shè)嘗。只有 當(dāng)該設(shè)備是一個(gè)引導(dǎo)設(shè)備 時(shí),這個(gè)值才有意義0x4110x00保留(Reserved) FAT32 分區(qū)企是將本字毀的值設(shè)置為00x4210x29擴(kuò)展引導(dǎo)標(biāo)簽(Extended Boot Signature)本字段 必須要有能被Windows 2 000所識(shí)別的值6(2S或Ox 290X4340x3339 1CFE分區(qū)序號(hào)(V。 Number)在? 所產(chǎn)生的么個(gè)有助于匡lume SerialI分磁盤0x4711NO N AMEM卷粗Volume Label)本 字段處能使用一次,譽(yù)被用 來保存卷標(biāo)號(hào).現(xiàn)在,卷標(biāo) 被作為一個(gè)特殊文件保存在 根目錄中0x528HFAT321

41、1系統(tǒng)ID(System ID) FAT32文件系統(tǒng)中一般取為“FAT32”表4FAT32分區(qū)的BPB字段字節(jié)位移字段長度(字節(jié))圖8對應(yīng)取值名稱和定義0x0B20x0200扇區(qū)字節(jié)數(shù)(BytesPerSector硬件扇區(qū)的大小。本字 段合法的十進(jìn)制值有 512、1024、2048 和 4096。對大多數(shù)磁盤來說, 本字段的值為5120x0D10x08每簇扇區(qū)數(shù)(SectorsPerCluster)一簇中的 扇區(qū)數(shù)。由于FAT32文件系統(tǒng)只能跟蹤有限個(gè)簇(最多為4294967296 個(gè)),因此,通過增加每簇扇區(qū)數(shù),可以使FAT32文件系統(tǒng)支持最大分區(qū)數(shù)。一個(gè)分區(qū)缺省的簇大小取決于該分區(qū)的大小。

42、 本字段的合法 十進(jìn)制值有 1 、2、4、8、16、32、64 和 128。Windows2000的FAT32實(shí)現(xiàn)只能創(chuàng)建最大為32GB的分區(qū)。但是, Windows2000能夠訪問由其他操作系統(tǒng)(Windows95、OSR2及其以后 的版本)所創(chuàng)建的更大的分區(qū)0x0e20x0020保留扇區(qū)數(shù)(ReservedSector) 第一個(gè) FAT 開始之前的扇區(qū)數(shù),包括引導(dǎo)扇區(qū)。本字段的十進(jìn)制值 一般為320x1010x02FAT數(shù)(NumberofFAT)該分區(qū)上FAT的副本數(shù)。 本字段的值一般為 20x1120x0000 根目錄項(xiàng)數(shù)(RootEntries)只有 FAT12/FAT16使用此 字

43、段。對FAT32分區(qū)而言,本字段必須設(shè)置為00x1320x0000小扇區(qū)數(shù) (SmallSector)(只有FAT12/FAT16使用此字段)對FAT32分區(qū)而言,本 字段必須設(shè)置為 00x1510xF8媒體描述符(MediaDescriptor)提供有關(guān)媒體被使用的 信息。值 0xF8 表示硬盤, 0xF0 表示高密度的 3.5 寸軟盤。媒體描述 符要用于 MS-DOSFAT16 磁盤, 在 Windows2000 中未被使用 0x1620x0000每 FAT扇區(qū)數(shù)(SectorsPerFAT)只被 FAT12/FAT16所使用,對 FAT32 分區(qū)而言,本字段必須設(shè)置為 00x1820x0

44、03F 每道扇區(qū)數(shù)(SectorsPerTrack包含使用INT13h的磁盤的 每道扇區(qū)數(shù)”幾何結(jié)構(gòu) 值。該分區(qū)被多個(gè)磁頭的柱面分成了多個(gè)磁道0x1A20x00FF磁頭數(shù)(NumberofHead)本字段包含使用INT13h的 磁盤的“磁頭數(shù)”幾何結(jié)構(gòu)值。例如,在一張 1.44MB3.5 英寸的軟盤上, 本字段的值為 20x1C40x0000003F隱藏扇區(qū)數(shù)(HiddenSector)該分區(qū)上引導(dǎo)扇區(qū) 之前的扇區(qū)數(shù)。在引導(dǎo)序列計(jì)算到根目錄的數(shù)據(jù)區(qū)的絕對位移的過程 中使用了該值。本字段一般只對那些在中斷 13h 上可見的媒體有意 義。在沒有分區(qū)的媒體上它必須總是為 00x2040x007D04

45、3F總扇區(qū)數(shù)(LargeSector本字段包含F(xiàn)AT32分區(qū) 中總的扇區(qū)數(shù)0x2440x0000仆32 每 FAT 扇區(qū)數(shù)(SectorsPerFAT)只被 FAT32 使 用)該分區(qū)每個(gè)FAT所占的扇區(qū)數(shù)。計(jì)算機(jī)利用這個(gè)數(shù)和FAT數(shù)以及隱藏扇區(qū)數(shù) (本表中所描述的 )來決定根目錄從哪里開始。該計(jì)算機(jī)還 可以從目錄中的項(xiàng)數(shù)決定該分區(qū)的用戶數(shù)據(jù)區(qū)從哪里開始0x2820x00擴(kuò)展標(biāo)志(ExtendedFlag)(只被FAT32使用)該兩個(gè)字節(jié) 結(jié)構(gòu)中各位的值為:位0-3:活動(dòng)FAT數(shù)(從 0開始計(jì)數(shù),而不是1).只有在不使用鏡像時(shí)才有效位 4-6:保留位7: 0值意味著在運(yùn)行時(shí)FAT被映射到所有的FAT1值表示只有一個(gè)FAT是活動(dòng)的位 8-15:保留0x2A20x0000 文件系統(tǒng)版本(FileystemVersion)只供 FAT32 使用, 高字節(jié)是主要的修訂號(hào), 而低字節(jié)是次要的修訂號(hào)。 本字段支持將來 對該 FAT32 媒體類型進(jìn)行擴(kuò)展。如果本字段非零,以前的 Windows 版本將不支持這樣的分區(qū)0x2C40x00000002 根目錄簇號(hào)(RootClusterNumber

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論