FAT32文件系統(tǒng)是什么意思
FAT32文件系統(tǒng)是什么意思
?(一)FAT32 文件系統(tǒng)將邏輯盤的空間劃分為三部分,依次是引導(dǎo)區(qū)(BOOT區(qū))、文件分配表區(qū)(FAT區(qū))、數(shù)據(jù)區(qū)(DATA區(qū))。引導(dǎo)區(qū)和文件分配表區(qū)又合稱為系統(tǒng)區(qū)。
??? (二)引導(dǎo)區(qū)從第一扇區(qū)開(kāi)始,使用了三個(gè)扇區(qū),保存了該邏輯盤每扇區(qū)字節(jié)數(shù),每簇對(duì)應(yīng)的扇區(qū)數(shù)等等重要參數(shù)和引導(dǎo)記錄。之后還留有若干保留扇區(qū)。而FAT16文件系統(tǒng)的引導(dǎo)區(qū)只占用一個(gè)扇區(qū),沒(méi)有保留扇區(qū)。
??? (三)文件分配表區(qū)共保存了兩個(gè)相同的文件分配表,因?yàn)槲募加玫拇鎯?chǔ)空間(簇鏈)及空閑空間的管理都是通過(guò)FAT實(shí)現(xiàn)的,F(xiàn)AT如此重要,保存兩個(gè)以便第一個(gè)損壞時(shí),還有第二個(gè)可用。文件系統(tǒng)對(duì)數(shù)據(jù)區(qū)的存儲(chǔ)空間是按簇進(jìn)行劃分和管理的,簇是空間分配和回收的基本單位,即,一個(gè)文件總是占用若干個(gè)整簇,文件所使用的最后一簇剩余的空間就不再使用,而是浪費(fèi)掉了。
從統(tǒng)計(jì)學(xué)上講,平均每個(gè)文件浪費(fèi)0.5簇的空間,簇越大,存儲(chǔ)文件時(shí)空間浪費(fèi)越多,利用率越低。因此,簇的大小決定了該盤數(shù)據(jù)區(qū)的利用率。FAT16系統(tǒng)簇號(hào)用16位二進(jìn)制數(shù)表示,從0002H到FFEFH個(gè)可用簇號(hào)(FFF0H到FFFFH另有定義,用來(lái)表示壞簇,文件結(jié)束簇等),允許每一邏輯盤的數(shù)據(jù)區(qū)最多不超過(guò)FFEDH(65518)個(gè)簇。FAT32系統(tǒng)簇號(hào)改用32位二進(jìn)制數(shù)表示,大致從00000002H到FFFFFEFFH個(gè)可用簇號(hào)。FAT表按順序依次記錄了該盤各簇的使用情況,是一種位示圖法。
每簇的使用情況用32位二進(jìn)制填寫(xiě),未被分配的簇相應(yīng)位置寫(xiě)零;壞簇相應(yīng)位置填入特定值;已分配的簇相應(yīng)位置填入非零值,具體為:如果該簇是文件的最后一簇,填入的值為FFFFFF0FH,如果該簇不是文件的最后一簇,填入的值為該文件占用的下一個(gè)簇的簇號(hào),這樣,正好將文件占用的各簇構(gòu)成一個(gè)簇鏈,保存在FAT表中。0000000H、00000001H兩簇號(hào)不使用,其對(duì)應(yīng)的兩個(gè)DWORD位置(FAT表開(kāi)頭的8個(gè)字節(jié))用來(lái)存放該盤介質(zhì)類型編號(hào)。FAT表的大小就由該邏輯盤數(shù)據(jù)區(qū)共有多少簇所決定,取整數(shù)個(gè)扇區(qū)。
(四)FAT32系統(tǒng)一簇對(duì)應(yīng)8個(gè)邏輯相鄰的扇區(qū),理論上,這種用法所能管理的邏輯盤容量上限為16TB(16384GB),容量大于16TB時(shí),可以用一簇對(duì)應(yīng)16個(gè)扇區(qū),依此類推。FAT16系統(tǒng)在邏輯盤容量介于128MB到256MB時(shí),一簇對(duì)應(yīng)8個(gè)扇區(qū),容量介于256MB到512MB時(shí),一簇對(duì)應(yīng)16個(gè)扇區(qū),容量介于512MB到1GB時(shí),一簇對(duì)應(yīng)32個(gè)扇區(qū),容量介于1GB到2GB時(shí),一簇對(duì)應(yīng)32個(gè)扇區(qū),超出2GB的部分無(wú)法使用。顯然,對(duì)于容量大于512MB的邏輯盤,采用FAT32的簇比采用FAT16的簇小很多,大大減少了空間的浪費(fèi)。
但是,對(duì)于容量小于512MB的盤,采用FAT32雖然一簇8個(gè)扇區(qū),比使用FAT16一簇16個(gè)扇區(qū),簇有所減小,但FAT32的FAT表較大,占用空間較多,總數(shù)據(jù)區(qū)被減少,兩者相抵,實(shí)際并不能增加有效存儲(chǔ)空間,所以微軟建議對(duì)小于512M的邏輯盤不使用FAT32。
另外,對(duì)于使用FAT16文件系統(tǒng)的用戶提一建議,硬盤分區(qū)時(shí),不要將分區(qū)(邏輯盤)容量正好設(shè)為某一區(qū)間的下限,例:將一邏輯盤容量設(shè)為1100M(稍大于1024M),則使用時(shí)其有效存儲(chǔ)容量比分區(qū)為950M的一般還少,因其簇大一倍,浪費(fèi)的空間較多。還有,使用FDISK等對(duì)分區(qū)指定容量時(shí),由于對(duì)1MB的定義不一樣(標(biāo)準(zhǔn)的二進(jìn)制的1MB為1048576B,有的系統(tǒng)將1MB理解為1000000B,1000KB等),及每個(gè)分區(qū)需從新磁道開(kāi)始等因素,實(shí)際分配的容量可能稍大于指定的容量,亦需注意掌握。
???? 五)根目錄區(qū)(ROOT區(qū))不再是固定區(qū)域、固定大小,可看作是數(shù)據(jù)區(qū)的一部分。因?yàn)楦夸浺迅臑楦夸浳募捎门c子目錄文件相同的管理方式,一般情況下從第二簇開(kāi)始使用,大小視需要增加,因此根目錄下的文件數(shù)目不再受最多512的限制。FAT16文件系統(tǒng)的根目錄區(qū)(ROOT區(qū))是固定區(qū)域、固定大小的,是從FAT區(qū)之后緊接著的32個(gè)扇區(qū),最多保存512個(gè)目錄項(xiàng),作為系統(tǒng)區(qū)的一部分。
(六)目錄區(qū)中的目錄項(xiàng)變化較多,一個(gè)目錄項(xiàng)仍占32字節(jié),可以是文件目錄項(xiàng)、子目錄項(xiàng)、卷標(biāo)項(xiàng)(僅跟目錄有)、已刪除目錄項(xiàng)、長(zhǎng)文件名目錄項(xiàng)等。目錄項(xiàng)中原來(lái)在DOS下保留未用的10個(gè)字節(jié)都有了新的定義,全部32字節(jié)的定義如下:
(1) 0-- 7字節(jié) 文件正名。
(2) 8--10字節(jié) 文件擴(kuò)展名。
(3) 11字節(jié) 文件屬性,按二進(jìn)制位定義,最高兩位保留未用,0至5位分別是只讀位、隱藏位、系統(tǒng)位、卷標(biāo)位、子目錄位、歸檔位。
(4) 11--13字節(jié) 僅長(zhǎng)文件名目錄項(xiàng)用,用來(lái)存儲(chǔ)其對(duì)應(yīng)的短文件名目錄項(xiàng)的文件名字節(jié)校驗(yàn)和等。
(5) 13--15字節(jié) 24位二進(jìn)制的文件建立時(shí)間,其中的高5位為小時(shí),次6位為分鐘。
(6) 16--17字節(jié) 16位二進(jìn)制的文件建立日期,其中的高7位為相對(duì)于1980年的年份值,次4位為月份,后5位為月內(nèi)日期。
(7) 18--19字節(jié) 16位二進(jìn)制的文件最新訪問(wèn)日期,定義同(6)。
(8) 20--21字節(jié) 起始簇號(hào)的高16位。
(9) 22--23字節(jié) 16位二進(jìn)制的文件最新修改時(shí)間,其中的高5位為小時(shí),次6位為分鐘,后5位的二倍為秒數(shù)。
(10)24--25字節(jié) 16位二進(jìn)制的文件最新修改日期,定義同(6)。
(11)26--27字節(jié) 起始簇號(hào)的低16位。
(12)28--31字節(jié) 32位的文件字節(jié)長(zhǎng)度。
其中第(4)至(8)項(xiàng)為以后陸續(xù)定義的。 對(duì)于子目錄項(xiàng),其(12)為零;已刪除目錄項(xiàng)的首字節(jié)值為E5H。在可以使用長(zhǎng)文件名的FAT32系統(tǒng)中,文件目錄項(xiàng)保存該文件的短文件名,長(zhǎng)文件名用若干個(gè)長(zhǎng)文件名目錄項(xiàng)保存,長(zhǎng)文件名目錄項(xiàng)倒序排在文件短目錄項(xiàng)前面,全部是采用雙字節(jié)內(nèi)碼保存的,每一項(xiàng)最多保存十三個(gè)字符內(nèi)碼,首字節(jié)指明是長(zhǎng)文件名的第幾項(xiàng),11字節(jié)一般為0FH,12字節(jié)指明類型,13字節(jié)為校驗(yàn)和,26--27字節(jié)為零。
修復(fù)被CIH破壞的硬盤一例(FAT32)
1) 用無(wú)毒系統(tǒng)Windows 9X軟盤啟動(dòng)計(jì)算機(jī),進(jìn)入CMOS SETUP,將系統(tǒng)日期修改為26日以前。
2) 用軟盤重新引導(dǎo)計(jì)算機(jī),運(yùn)行FDISK /MBR,清除主引導(dǎo)記錄MBR代碼區(qū)。
3) 運(yùn)行DEBUG,輸入以下程序:
-a
XXXX:0100 mov ax,201
XXXX:0103 mov bx,1000
XXXX:0106 mov cx,1
XXXX:0109 mov dx,80
XXXX:010C int13
XXXX:010E int3
XXXX:010F [回車]
-g
....(顯示寄存器結(jié)果,略去)
-f11BE 11FD 00
-f11FE 11FF 55 AA
-a100
XXXX:0100 mov ax,301
XXXX:0103 [回車]
-g=100
......
-q
以上程序清空分區(qū)表。或者,直接運(yùn)行DISKEDIT,選擇物理驅(qū)動(dòng)器HARD DISK 1,按Alt-P
選擇物理扇區(qū),Side 0,Cylinder 0,Sector 1,用00清空偏移01BE至01FD,并在扇區(qū)最
后輸入55,AA。在啟動(dòng)DISKEDIT后,系統(tǒng)自動(dòng)設(shè)為READ ONLY,從菜單中選TOOLS-]CONFIGURATION,
清除READ ONLY標(biāo)記并回車,就可以對(duì)硬盤進(jìn)行寫(xiě)操作了。在寫(xiě)操作之后,按Ctrl-W存盤。
4) 清空分區(qū)表后,用NDD重建原分區(qū)。如果硬盤上還有除C以外的邏輯分區(qū),可以一齊找回。
5) 為重建邏輯驅(qū)動(dòng)器C,下面將計(jì)算FAT區(qū):
a) Windows 9X操作系統(tǒng)的邏輯驅(qū)動(dòng)器C的BOOT區(qū)在Cylinder 0,Side 1,Sector 1。
b) 用DISKEDIT的FIND功能尋找ASC II字符串:COMMAND COM
(COMMAND與COM中間有一個(gè)空格,ASC II值為20,找尋FDT表中COMMAND.COM的原因是,根目錄中一般都有此文件,如果你的計(jì)算機(jī)里該文件不在根目錄,就將上述字符串改為根目錄中的其他文件名,如IO.SYS或MSDOS.SYS。但要注意文件名和后綴名之間要有空格,總長(zhǎng)度為11字節(jié))
c) 找到后,用PgUp向前翻頁(yè),直到上一扇區(qū)尾部出現(xiàn)連續(xù)的00
(一般說(shuō),沒(méi)見(jiàn)過(guò)硬盤的最后幾十K還有存放數(shù)據(jù)的情況,否則,Windows 9X的虛擬內(nèi)存恐怕就沒(méi)法建立了,)
d) 記錄該扇區(qū)的Cylinder,Side,Sector值。——ROOT
e) 尋找FAT2的開(kāi)始扇區(qū),其特點(diǎn)是:
(要選中“Search at specified sector offset:[0...]”)
扇區(qū)偏移0000H處為F8 FF FF ;FAT16
扇區(qū)偏移0000H處為F8 FF FF FF ;FAT32
找到后,確認(rèn)上一扇區(qū)尾部出現(xiàn)連續(xù)的00,則該扇區(qū)為FAT2頭部。
(FAT1應(yīng)與FAT2內(nèi)容相同,但其頭部數(shù)個(gè)扇區(qū)已被CIH破壞)
f) 記錄該扇區(qū)的Cylinder,Side,Sector值。——FAT2
g) 計(jì)算FAT2的扇區(qū)數(shù),用以下公式,其中,尾標(biāo)0為FAT2地址,尾標(biāo)1為ROOT地址:
扇區(qū)數(shù)=(Cylinder1-Cylinder0)*Sectors/Cylinder+(Side1-Side0)*Sides
*Sectors/Cylinder+Sector1-Sector0
說(shuō)明:Sectors/Cylinder為每道扇區(qū)數(shù),Sides為硬盤的總磁頭數(shù)。一個(gè)簡(jiǎn)單的查看方法是:在DISKEDIT中按下[End]鍵,屏幕右下角的Sector值即為每道扇區(qū)數(shù),而Side值+1即為總磁頭數(shù)。FAT1扇區(qū)數(shù)與FAT2相同。
h) 計(jì)算出FAT1頭部地址,并記錄。——FAT1
i) 在DISKEDIT中按Alt-P重選Physical Sector,起始地址為步驟e)記錄的地址。扇區(qū)數(shù)為步驟g)計(jì)算出的扇區(qū)數(shù)。按Alt-W將選中的扇區(qū)(即FAT2)存至FAT1開(kāi)始的地址(步驟h)計(jì)算出的FAT1頭部)。
j) 至此,F(xiàn)AT2-]FAT1的恢復(fù)工作宣告結(jié)束。
6) 下面恢復(fù)主引導(dǎo)記錄中的標(biāo)志:
用DISKEDIT選擇Cylinder 0,Side 0,Sector 1,將此扇區(qū)尾部偏移為01C2H地址的標(biāo)志修復(fù)。如果為FAT16系統(tǒng),應(yīng)為06H;如果為FAT32系統(tǒng),應(yīng)為0CH。均表示PRI-DOS分區(qū)。
7) 恢復(fù)BOOT扇區(qū),位置在Cylinder 0,Side 1,Sector 1,以下用0-1-1表示,以此類推。
a) 在步驟5)中,已計(jì)算出了FAT1的起始位置。在FAT16系統(tǒng)中,F(xiàn)AT1一般自0-1-2開(kāi)始;在FAT32系統(tǒng)中,F(xiàn)AT1一般自0-1-33開(kāi)始。如果你的系統(tǒng)與此不同,以實(shí)際計(jì)算出的數(shù)值為準(zhǔn)。
b) 將FAT1的起始扇區(qū)號(hào)減1,就是系統(tǒng)的隱含扇區(qū)數(shù),一般FAT16為1,F(xiàn)AT32為32。
c) 如為FAT16系統(tǒng),跳過(guò)本步驟,至d)。
選擇一臺(tái)無(wú)毒的FAT32系統(tǒng)作參考,將0-1-1至FAT1前面的隱含扇區(qū)保存到
非常好我支持^.^
(246) 50.4%
不好我反對(duì)
(242) 49.6%
相關(guān)閱讀:
- [電子說(shuō)] FAT32文件系統(tǒng)詳細(xì)分析 (格式化SD nand/SD卡) 2023-10-18
- [電子說(shuō)] AT32講堂004 | AT32 MCU DMA通道的靈活配置 2022-05-10
- [電子說(shuō)] 羅列一些在不同操作系統(tǒng)中比較常見(jiàn)的文件系統(tǒng) 2023-03-14
- [電子說(shuō)] 智能助眠儀音樂(lè)方案—N9300 MP3音樂(lè)芯片 2023-03-03
- [電子說(shuō)] 硬盤的不同分區(qū)格式有什么區(qū)別? 2023-02-17
- [電子說(shuō)] 為大家科普文件格式FAT、FAT32、exFAT之間的關(guān)系和區(qū)別 2021-07-05
- [電子說(shuō)] Windows為何只支持32GB的FAT32分區(qū)? 2021-01-06
- [電子說(shuō)] FAT32、exFAT與NTFS分別是什么? 2019-11-21
( 發(fā)表人:admin )