FAT文件系統(tǒng).doc

FAT文件系統(tǒng).doc

ID:48475784

大小:1.23 MB

頁數(shù):32頁

時(shí)間:2020-02-04

FAT文件系統(tǒng).doc_第1頁
FAT文件系統(tǒng).doc_第2頁
FAT文件系統(tǒng).doc_第3頁
FAT文件系統(tǒng).doc_第4頁
FAT文件系統(tǒng).doc_第5頁
資源描述:

《FAT文件系統(tǒng).doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、標(biāo)簽:FAT文件系統(tǒng)FAT文件系統(tǒng)學(xué)習(xí)MBR:MasterBootRecord(主引導(dǎo)記錄)DBR:DOSBootRecord(DOS引導(dǎo)記錄,位于分區(qū)引導(dǎo)扇區(qū))DPT:DiskPartitionTable(磁盤分區(qū)表)BPB:BIOSParameterBlock(BIOS參數(shù)塊)FAT:FileAllocationTable(文件分配表)Sector:扇區(qū)Cluster:簇一、硬盤組織結(jié)構(gòu)下面是一個(gè)包含4個(gè)分區(qū)的硬盤結(jié)構(gòu)示意圖,其中分為3個(gè)基本分區(qū)和一個(gè)擴(kuò)展分區(qū)。二、FAT文件系統(tǒng)結(jié)構(gòu)FAT文件系統(tǒng)是由按照如下順序排列的幾個(gè)部分組成的:l

2、0–ReservedRegionl1–FATRegionl2–RootDirectoryRegion(FAT32沒有這部分)l3–FileandDirectoryDataRegionFAT系統(tǒng)的數(shù)據(jù)存儲采用小端(LittleEndian)方式,注意到這一點(diǎn)很重要,在使用大端(BigEndian)的系統(tǒng)中,讀取多字節(jié)數(shù)據(jù)的時(shí)候必須要經(jīng)過轉(zhuǎn)換,否則,讀取到的數(shù)據(jù)是不正確的。三、主引導(dǎo)扇區(qū)硬盤主引導(dǎo)扇區(qū)=硬盤主引導(dǎo)記錄(MBR)+硬盤分區(qū)表(DPT)MBR:扇區(qū)內(nèi)偏移地址0~0x1BDDPT:扇區(qū)內(nèi)偏移地址0x1BE~0x1FD,其中又分為4個(gè)分

3、區(qū)表:第一個(gè)分區(qū)表:0x1BE~0x1CD第二個(gè)分區(qū)表:0x1CE~0x1DD第三個(gè)分區(qū)表:0x1DE~0x1ED第四個(gè)分區(qū)表:0x1EE~0x1FD每個(gè)分區(qū)表的信息如下表所示:主引導(dǎo)扇區(qū)上面是從一張SD卡讀到的主引導(dǎo)扇區(qū)信息??梢钥闯?,MBR區(qū)域數(shù)據(jù)全部為0,這張SD卡只有一個(gè)分區(qū),這個(gè)分區(qū)前的扇區(qū)數(shù)為0x0000003F,所以這個(gè)分區(qū)的開始位置就是扇區(qū)0x0000003F,總扇區(qū)數(shù)為0x000F1EC1(990913個(gè)扇區(qū))。四、分區(qū)引導(dǎo)扇區(qū)DBR也常常稱為啟動(dòng)扇區(qū)DBR(DosBootRecorder),Microsoft稱它為0扇區(qū)

4、(0thsector),通過前面的介紹我們知道,稱它為0扇區(qū)其實(shí)是不正確的,這樣容易讓人誤解它為磁盤的最前面一個(gè)扇區(qū),稱它為0扇區(qū)只是表明它是FAT中扇區(qū)的參考點(diǎn)而已。MBR將CPU尋址地址轉(zhuǎn)移給DBR,因此DBR的前3個(gè)字節(jié)必須是合法的可執(zhí)行的X86的跳轉(zhuǎn)指令,負(fù)責(zé)跳過接下來的幾個(gè)不可執(zhí)行的字節(jié)BPB和擴(kuò)展BPB。圖2:DBR該扇區(qū)中包含有我們關(guān)注的一個(gè)重要數(shù)據(jù)結(jié)構(gòu)BPB(BIOSParameterBlock)。以下表格內(nèi)容翻譯自Microsoft的《MicrosoftExtensibleFirmwareInitiativeFAT32Fi

5、leSystemSpecification—version1.03》,其中包含BPB各項(xiàng)的描述。NOTE:在以下的敘述中,名字以BPB_開頭的屬于BPB部分,以BS開頭的屬于啟動(dòng)扇區(qū)(BootSector)部分,實(shí)際上并不屬于BPB。offset(byte)長度(byte)描述BS_jmpBoot0x003跳轉(zhuǎn)指令,指向啟動(dòng)代碼BS_OEMName0x038建議值為“MSWIN4.1”。有些廠商的FAT驅(qū)動(dòng)可能會檢測此項(xiàng),所以設(shè)為“MSWIN4.1”可以盡量避免兼容性的問題BPB_BytsPerSec0x0b2每扇區(qū)的字節(jié)數(shù),取值只能是以下

6、幾種:512,1024,2048或是4096。設(shè)為512會取得最好的兼容性,目前有很多FAT代碼都是硬性規(guī)定每扇區(qū)的字節(jié)數(shù)為512,而不是實(shí)際的檢測此值。但微軟的操作系統(tǒng)能夠很好支持1024,2048或是4096BPB_SecPerClus0x0d1每簇的扇區(qū)數(shù),其值必須是2的整數(shù)次方(該整數(shù)必須>=0),同時(shí)還要保證每簇的字節(jié)數(shù)不能超過32K,也就是1024*32字節(jié)BPB_RsvdSecCnt0x0e2保留扇區(qū)的數(shù)目,此域不能為0,F(xiàn)AT12/FAT16必須為1,F(xiàn)AT32的典型值取為32,,微軟的系統(tǒng)支持任何非0值BPB_NumFAT

7、s0x101分區(qū)中FAT表的份數(shù),,任何FAT格式都建議為2BPB_RootEntCnt0x112對于FAT12和FAT16此域表示根目錄中最多可容納的目錄的個(gè)數(shù)(每項(xiàng)長度為32bytes),對于FAT32,此項(xiàng)必須為0。對于FAT12和FAT16,此數(shù)乘以32必為BPB_BytesPerSec的偶數(shù)倍,為了達(dá)到更好的兼容性,F(xiàn)AT12和FAT16都應(yīng)該取值為512BPB_ToSec160x132早期版本中16bit的總扇區(qū),這里總扇區(qū)數(shù)包括FAT卷上四個(gè)基本分區(qū)的全部扇區(qū),此域可以為0,若此域?yàn)?,那么BPB_ToSec32必須為0,對于

8、FAT32,此域必為0。對于FAT12/FAT16,此域填寫總扇區(qū)數(shù),如果該值小于0x10000的話,BPB_ToSec32必須為0BPB_Media0x151對于“固定”(不可

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。