一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

關(guān)于FAT,FDT,DATA區(qū)相關(guān)資料共享.(適用于FAT16/FAT32). - 其他開...

 wodeafei 2010-12-29
文件分配表FAT(File   Allocation   Table)  
        文件分配表是用來表示磁盤文件的空間分配信息的,它不對引導(dǎo)區(qū)、文件目錄表的信息進行表示,也不真正存儲文件內(nèi)容.  

        文件占用磁盤空間時,基本單位不是字節(jié)而是簇。簇的大小與磁盤的規(guī)格有關(guān),一般情況下,軟盤每簇是1個扇區(qū),硬盤每簇的扇區(qū)數(shù)與硬盤的總?cè)萘看笮∮嘘P(guān),為2的n次方,可能是4、8、16、32、64……
        由于FAT對于文件管理的重要性,所以FAT有一個備份,即在原FAT的后面再建一個同樣的FAT。初形成的FAT中所有項都標明為 "未占用 ",但如果磁盤有局部損壞,那幺格式化程序會檢測出損壞的簇,在相應(yīng)的項中標為 "壞簇 ",以后存文件時就不會再使用這個簇了。FAT的項數(shù)與硬盤上的總簇數(shù)相當,每一項占用的字節(jié)數(shù)也要與總簇數(shù)相適應(yīng),因為其中需要存放簇號。FAT的格式有多種,最為常見和為讀者所熟悉的是FAT16和FAT32,其中FAT16是指文件分配表使用16位數(shù)字,由于16位分配表最多能管理65536(即2的16次方)個簇,也就是所規(guī)定的一個硬盤分區(qū)。
        由于每個簇的存儲空間最大只有32KB,所以在使用FAT16管理硬盤時,每個分區(qū)的最大存儲容量只有(65536×32   KB)即2048MB,也就是我們常說的2G?,F(xiàn)在的硬盤容量是越來越大,由于FAT16對硬盤分區(qū)的容量限制,所以當硬盤容量超過2G之后,用戶只能將硬盤劃分成多個2G的分區(qū)后才能正常使用,為此微軟公司從Windows   95   OSR2版本開始使用FAT32標準,即使用32位的文件分配表來管理硬盤文件,這樣系統(tǒng)就能為文件分配多達4294967296(即2的32次方)個簇,所以在簇同樣為32KB時每個分區(qū)容量最大可達65G以上。此外使用FAT32管理硬盤時,每個邏輯盤中的簇長度也比使用FAT16標準管理的同等容量邏輯盤小很多。由于文件存儲在硬盤上占用的磁盤空間以簇為最小單位,所以某一文件即使只有幾十個字節(jié)也必須占用整個簇,因此邏輯盤的簇單位容量越小越能合理利用存儲空間。所以FAT32更適于大硬盤。  

     
文件占用磁盤空間時,基本單位不是字節(jié)而是簇。簇的大小與磁盤的規(guī)格有關(guān),一般情況下,軟盤每簇是1個扇區(qū).  

硬盤每簇的扇區(qū)數(shù)與硬盤的總?cè)萘看笮∮嘘P(guān),其值見下表:  

分區(qū)大小     FAT16   (扇區(qū)數(shù)/簇)     FAT32   (扇區(qū)數(shù)/簇)  
16MB-127MB                     4                     1  
128MB-255MB                   8                     1  
256MB-259MB                   16                   1  
260MB-511MB                   16                   8  
512MB-1023MB                 32                   8  
1024MB-2047MB               64                   8  
2048MB-8GB                 不支持               8  
8GB-16GB                     不支持               16  
16GB-32GB                   不支持               32  
32GB以上                     不支持               64  


FAT16及FAT32相關(guān)特定值意義如下:

FAT16
1.DBR     第0扇區(qū)開始,使用一個扇區(qū),沒有保留扇區(qū).
2.FAT表長   在DBR第16H處的2字節(jié)(表示占用扇區(qū)數(shù)),FAT1從第1扇區(qū)開始    
3.FAT簇   每簇用16位二進制數(shù)表示FAT表中每簇地址占2Bytes
4.可用簇號   0002H   -   FFEFH   (   <=   FFEDH[65518]個簇)  
5.特定簇號   0000H、0001H兩簇號不使用,其對應(yīng)DWORD位置:F8   FF   FF   7F
  簇值意義   不要把FAT表項內(nèi)的數(shù)字誤認為表示當前簇號,而應(yīng)是該文件的下一個簇的簇號
高字節(jié)在后低字節(jié)在前是存儲方式,讀出時應(yīng)進行調(diào)整,如兩字節(jié)12H   34H,實際應(yīng)為3412H  
值FFF0H用來表示壞簇   值FFFFH表示文件結(jié)束簇
特定值表示壞簇,其它值表示為文件占用的下一簇的簇號
6.根目錄區(qū)扇區(qū)大小,在DBR第11H的兩字節(jié)(表示32字節(jié)的根目錄個數(shù))如值為00   02,則0200H=512個,即512*32字節(jié)=16384字節(jié),等于32個扇區(qū)
7.扇區(qū)數(shù)量   在DBR第13H處2字節(jié)  

FAT32
1.DBR   從第0扇區(qū)開始,使用三個扇區(qū),保存了該邏輯盤每扇區(qū)字節(jié)數(shù),每簇對應(yīng)的扇區(qū)數(shù)等重要參數(shù)和引導(dǎo)記錄.(佔用32扇區(qū))
2.FAT表長   在DBR第24H處的4字節(jié)(表示FAT占用扇區(qū)數(shù)),FAT1從第32扇區(qū)開始.
3.FAT簇   FAT表中每簇地址占4Bytes
4.可用簇號   00000002H   -   FFFFFEFFH  
5.特定簇號   0000000H、00000001H兩簇號不使用,其對應(yīng)的兩個DWORD位置(FAT表開頭的8個字節(jié))用來存放該盤介質(zhì)類型編號:F8   FF   FF   0F   FF   FF   FF   0F
值00000000H表示該簇未被分配值FFFFFF0FH表示是該簇是文件占用的最后一族
特定值表示壞簇,其它值表示為文件占用的下一簇的簇號
6.根目錄區(qū)扇區(qū)大小,   不再是固定區(qū)域和固定大小  
7.扇區(qū)數(shù)量   在DBR第20H處的4字節(jié)  


其它:
1.   FAT表按順序依次記錄了該盤各簇的使用情況,是一種位示圖法.  
2.   每簇所占用扇區(qū)數(shù)見上.  
3.   微軟建議對小于512M的邏輯盤不使用FAT32
4.   對于使用FAT16文件系統(tǒng)的硬盤分區(qū)時,不要將分區(qū)(邏輯盤)容量正好設(shè)為某一區(qū)間的下限.
     

計算公式:  
每個扇區(qū)長度   =   512字節(jié)  
總簇數(shù)   =   邏輯盤容量/簇容量  
總簇數(shù)   =   FAT表長度(字節(jié))/每個表項長度(字節(jié))-   2  
FAT表長度=邏輯盤容量/簇容量*每個表項長度
每個有效的FAT結(jié)構(gòu)區(qū)包含兩個完全相同的拷貝:FAT1、FAT2  

如:   2G     FAT   16分區(qū)格式的HD,   FAT長度為250Sectors,  
        則總簇數(shù)=   250   *   512   /   2     -   2   =   63998  
        簇容量(每簇扇區(qū)數(shù))   =   2   097   000   000   /   63998   =   32776Bytes   =   64   Sectors  

文件目錄表FDT(File   Directory   Table),即根目錄(DIR)區(qū),又稱為ROOT區(qū)
        緊跟在FAT2的下一個扇區(qū)開始,記錄著根目錄下每個文件(目錄)的起始單元,文件的屬性等。定位文件位置時,操作系統(tǒng)根據(jù)DIR中的起始單元,結(jié)合FAT表就可以知道文件在硬盤中的具體位置和大小了。
        如果支持長文件名,則每個表項為64個字節(jié),其中,前32個字節(jié)為長文件鏈接說明;后32個字節(jié)為文件屬性說明,包括文件長度、起始地址、日期、時間等。如不支持長文件名,則每個表項為32個字節(jié)的屬性說明。

        根目錄下可包含文件和子目錄,子目錄下又可包含文件和下級子目錄.一個子目錄也占用一個文件目錄項,只不過它的屬性字節(jié)為10H,文件長度字節(jié)為0.一個子目錄中的內(nèi)容是若干個文件目錄項或下級子目錄項.

Start   Pos.     Bytes   FAT16                       FAT32  
00-07               8   文件名                             文件名  
08-0A               3   文件擴展名                     文件擴展名  
0B                     1   FAT16://表示屬性:     00000000讀寫   00000001只寫   00000010隱含     00000111系統(tǒng),隱含,只讀   00000100系統(tǒng)   00001000卷標   00010000子目錄   00100000檔案,只要完成寫操作并已關(guān)閉即置1
FAT32://0至5位分別是只讀位、隱藏位、系統(tǒng)位、卷標位、子目錄位、歸檔位
最高兩位保留未用
 
0C-0D         2       保留未用                   存儲短文件名字節(jié)校驗和  
0E-0F         2       保留未用                   文件創(chuàng)建時間  
10-11         2       保留未用                   文件創(chuàng)建日期  
12-13         2       保留未用                   最新訪問日期  
14-15         2       保留未用                   文件存放的起始簇號的高16位  
16-17         2       文件創(chuàng)建時間(hhhhhmmmmmmsssss)                 文件最新修改時間  
18-19         2       文件創(chuàng)建日期(yyyyyyymmmmddddd)               文件最新修改日期  
1A-1B         2       文件存放的起始簇號(低字節(jié)在前)                   文件存放的起始簇號的低16位  
1C-1F         4       文件長度                   文件長度  


注:目錄項中第0~7字節(jié)為文件名(若有剩余字節(jié)則用空白字符20H填充).
其中,第1字節(jié)又表明了該文件的狀態(tài),它有如下四種取值方式:
a.   00H--目錄項的空目錄。
b.   E5H--表示該目錄項曾經(jīng)使用過,但文件已被刪除。
c.   2EH--表示子目錄下的兩個特殊文件 ". "或 ".. "目錄項
d.   其它任何字符--表示一個文件名(或目錄名)的第一個字符的ASCII碼值.


數(shù)據(jù)(DATA)區(qū)
數(shù)據(jù)區(qū)是真正意義上的數(shù)據(jù)存儲的地方,位于DIR區(qū)之后,占據(jù)硬盤上的大部分數(shù)據(jù)空間。
文件數(shù)據(jù)起始地址(扇區(qū)號)     =   保留扇區(qū)數(shù)(DBR)   +   每FAT扇區(qū)數(shù)   *   2   +   根目錄項數(shù)/32   (FDT扇區(qū)數(shù))   +   每簇扇區(qū)數(shù)   *   (起始簇號   -   2)

        當一個程序?qū)Σ僮飨到y(tǒng)要求提供某一個文件的內(nèi)容時,操作系統(tǒng)會到此文件的目錄記錄表去尋找它的第一個簇號碼,   然后再到FAT記錄表里去找在此一鏈結(jié)(Chain)里的下一個簇。   此動作不斷的重復(fù)直到找到文件的最后一個簇為止,操作系統(tǒng)可以精確的計算那些簇屬于這個文件及其先后順序。經(jīng)由此方式,操作系統(tǒng)可以提供程序所要求之文件的任何部分。這種組織文件的方式稱   為FAT鏈(FAT   Chain).
        在FAT文件系統(tǒng)下,文件永遠被分配到整數(shù)單位的簇。   在一個每一簇大小為32K的1.2GB磁盤中,一個只包含 "Hello,World! "這幾個字符的大小為12個   字節(jié)文件仍要在磁盤中占32K的空間。在簇中沒有用到的部分稱為耗損(Slack),小文件的耗損幾乎與整個簇相當,平均來說,一個文件會有一半左右的耗損。
        文件的讀取: 操作系統(tǒng)從目錄區(qū)中讀取文件信息(包括文件名、后綴名、文件大小、修改日期和文件在數(shù)據(jù)區(qū)保存的第一個簇的簇號),我們這里假設(shè)第一個簇號是0023。操作系統(tǒng)從0023簇讀取相應(yīng)的數(shù)據(jù),然后再找到FAT的0023單元,如果內(nèi)容是文件結(jié)束標志(FF),則表示文件結(jié)束,否則內(nèi)容保存數(shù)據(jù)的下一個簇的簇號,這樣重復(fù)下去直到遇到文件結(jié)束標志。  

        文件的寫入:當我們要保存文件時,操作系統(tǒng)首先在DIR區(qū)中找到空區(qū)寫入文件名、大小和創(chuàng)建時間等相應(yīng)信息,然后在Data區(qū)找到閑置空間將文件保存,并將Data區(qū)的第一個簇寫入DIR區(qū),其余的動作和上邊的讀取動作差不多。

        DOS刪除文件時只是把文件目錄表中的該文件的表項第0個字節(jié)改為E5h,表此表項已被刪除,并在文件分配表中把該文件占用各簇的表項清0,以釋放空間。其實文件的內(nèi)容仍在盤上,并沒有被真正刪除,這就是undelete.exe、unerase.exe等一類恢復(fù)刪除工具能起作用的原因。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    午夜精品在线观看视频午夜| 亚洲精品国产美女久久久99| 欧美日韩综合在线第一页| 两性色午夜天堂免费视频| 日韩视频在线观看成人| 国产二级一级内射视频播放| 91人妻人人澡人人人人精品| 欧美一区二区在线日韩| 亚洲伊人久久精品国产| 精品亚洲av一区二区三区| 91插插插外国一区二区婷婷| 亚洲免费视频中文字幕在线观看 | 国产精品国产亚洲区久久| 国产人妻精品区一区二区三区 | 日本高清视频在线观看不卡 | 欧美自拍偷自拍亚洲精品| 亚洲国产成人一区二区在线观看| 91偷拍裸体一区二区三区| 国产一区二区精品高清免费 | 国产精品久久精品国产| 中文字幕欧美精品人妻一区| 很黄很污在线免费观看| 国产综合香蕉五月婷在线| 高清在线精品一区二区| 欧美乱妇日本乱码特黄大片| 日韩18一区二区三区| 国产精品一区二区日韩新区| 国产一区欧美午夜福利| 国产日韩熟女中文字幕| 午夜福利直播在线视频| 国产色一区二区三区精品视频| 麻豆最新出品国产精品| 国产综合香蕉五月婷在线| 亚洲中文字幕高清视频在线观看| 国产精品伦一区二区三区四季| 欧美日韩精品久久亚洲区熟妇人| 日韩不卡一区二区视频| 国内尹人香蕉综合在线| 国产成人精品99在线观看| 91偷拍裸体一区二区三区| 欧美大粗爽一区二区三区|