必威电竞|足球世界杯竞猜平台

FAT32
來(lái)源:互聯(lián)網(wǎng)

FAT32是文件分配表是采用32位二進(jìn)制數(shù)記錄管理的磁盤(pán)文件管理方式因FAT類(lèi)文件系統(tǒng)的核心是文件分配表,命名由此得來(lái)。FAT32是從FAT和FAT16發(fā)展而來(lái)的,優(yōu)點(diǎn)是穩(wěn)定性和兼容性好,能充分兼容Win 9X及以前版本,且維護(hù)方便。缺點(diǎn)是安全性差,單個(gè)文件也只能支持最大4GB。

由于現(xiàn)在的HDD生產(chǎn)成本下降,其容量越來(lái)越大,運(yùn)用FAT32的分區(qū)格式后,我們可以將一個(gè)大硬盤(pán)定義成一個(gè)分區(qū)而不必分為幾個(gè)分區(qū)使用,大大方便了對(duì)磁盤(pán)的管理。

但由于FAT32分區(qū)內(nèi)無(wú)法存放大于4GB的單個(gè)文件,且性能不佳,易產(chǎn)生磁盤(pán)碎片。目前已被性能更優(yōu)異的NTFS分區(qū)格式所取代。

產(chǎn)生背景

Windows的文件系統(tǒng)在每個(gè)硬盤(pán)都使用一個(gè)被稱為文件分配表(FAT)的專(zhuān)用扇區(qū)來(lái)儲(chǔ)存跟蹤全部文件位置所需的數(shù)據(jù),以前操作系統(tǒng)中使用的是16位的FAT,這種方式的缺點(diǎn)是:

1.雖然能夠有效地管理小容量HDD上的數(shù)據(jù),但不能管理大容量硬盤(pán),硬盤(pán)分區(qū)不能大于2GB。

2.由于在計(jì)算機(jī)內(nèi)文件是以簇的形式存儲(chǔ)的,在FAT16情況下,硬盤(pán)分區(qū)越大,簇的尺寸越大,這樣文件存儲(chǔ)時(shí)將浪費(fèi)硬盤(pán)空間,硬盤(pán)空間利用率很低,尤其在小文件比較多時(shí)。

因此,F(xiàn)AT32應(yīng)運(yùn)而生。Windows 98包括一種被稱為FAT32的新32位文件系統(tǒng),可以有效地管理大容量硬盤(pán)并識(shí)別容量超過(guò)2GB的硬盤(pán)。FAT32是文件分配表系統(tǒng)的提高版,使用比FAT驅(qū)動(dòng)程序更小的簇,使大硬盤(pán)上的空間得以充分利用。

參數(shù)

分區(qū)標(biāo)識(shí): 0x0B, 0x0C(MBR)EBD0A0A2-B9E5-4433-87C0-68B6B72699C7(GPT)

最大單文件大小: 4 GB

最大文件數(shù)量: 268,435,437

最長(zhǎng)檔名限制: 8.3 或者 長(zhǎng)文件名255個(gè)字符

(在windows 2000和windows XP環(huán)境下格式化程序只能創(chuàng)建最大32GBFAT32文件系統(tǒng),不過(guò)可以用如PQ等分區(qū)軟件分出大于32GB的FAT32分區(qū),大于32GB的FAT32分區(qū)在Windows 2000/XP下使用完全正常)

記錄日期:創(chuàng)建、修改、訪問(wèn)

日期范圍: 1980年1月1日至2107年12月31日

屬性:只讀,隱藏,系統(tǒng),卷標(biāo),子目錄,檔案

透明加密:不支持

透明壓縮:不支持

訪問(wèn)許可:無(wú)限制

性能特點(diǎn)

FAT32(File Allocation Table)具有一個(gè)最大的優(yōu)點(diǎn):每個(gè)簇容量都固定為4KB,與FAT16相比,可以大大地減少磁盤(pán)的浪費(fèi),提高磁盤(pán)利用率。目前,支持這一磁盤(pán)分區(qū)格式的操作系統(tǒng)有Windows 95Windows 98Windows 2000、Win2003、Win Vista、Win7和Windows 10。部分智能手機(jī)也支持對(duì)FAT32格式存儲(chǔ)器的直接讀寫(xiě)(OTG)。但是,這種分區(qū)格式也有它的缺點(diǎn),首先是采用FAT32格式分區(qū)的磁盤(pán),由于文件分配表的擴(kuò)大,運(yùn)行速度比采用FAT16格式分區(qū)的磁盤(pán)要慢。

約束

windows 2000和windows XP能夠讀寫(xiě)任何大小的FAT32文件系統(tǒng),但是這些平臺(tái)上的格式化程序只能創(chuàng)建最大32GB的FAT32文件系統(tǒng)。

dos下可直接訪問(wèn)fat32分區(qū),而ntfs分區(qū)則不能在dos下直接訪問(wèn)。

缺點(diǎn)

但FAT有一個(gè)嚴(yán)重的缺點(diǎn):當(dāng)文件刪除后寫(xiě)入新資料,F(xiàn)AT不會(huì)將檔案整理成完整片段再寫(xiě)入,長(zhǎng)期使用后會(huì)使檔案資料變得逐漸分散,而減慢了讀寫(xiě)速度。硬盤(pán)碎片整理是一種解決方法,但必須經(jīng)常整理來(lái)保持FAT文件系統(tǒng)的效率。還有就是FAT32分區(qū)因?yàn)樵O(shè)計(jì)缺陷,無(wú)法支持超過(guò)4GB的單個(gè)文件.

磁盤(pán)結(jié)構(gòu)

對(duì)于使用FAT32文件系統(tǒng)的每個(gè)邏輯盤(pán)內(nèi)部空間又可劃分為三部分,引導(dǎo)區(qū)和文件分配表區(qū)又合稱為系統(tǒng)區(qū),占據(jù)整個(gè)邏輯盤(pán)前端很小的空間,存放有關(guān)管理信息。數(shù)據(jù)區(qū)才是邏輯盤(pán)用來(lái)存放文件內(nèi)容的區(qū)域,該區(qū)域以簇為分配單位來(lái)使用。

保留扇區(qū)

位于最開(kāi)始的位置。第一個(gè)保留扇區(qū)是引導(dǎo)區(qū)或引導(dǎo)扇區(qū)(分區(qū)啟動(dòng)記錄)。它包括一個(gè)稱為基本輸入輸出參數(shù)塊的區(qū)域(包括一些基本的文件系統(tǒng)信息尤其是它的類(lèi)型和其它指向其它扇區(qū)的指針),通常包括操作系統(tǒng)的啟動(dòng)調(diào)用代碼。保留扇區(qū)的總數(shù)記錄在引導(dǎo)扇區(qū)中的一個(gè)參數(shù)中。引導(dǎo)扇區(qū)中的重要信息可以被DOS和OS/2中稱為驅(qū)動(dòng)器參數(shù)塊的操作系統(tǒng)結(jié)構(gòu)訪問(wèn)。引導(dǎo)區(qū)(BOOT區(qū))從第一扇區(qū)(邏輯扇區(qū)號(hào)0)開(kāi)始使用了三個(gè)扇區(qū),保存了該邏輯盤(pán)每扇區(qū)字節(jié)數(shù),每簇對(duì)應(yīng)的扇區(qū)數(shù)等等重要參數(shù)和引導(dǎo)記錄。之后還留有若干保留扇區(qū),其中有一至三扇區(qū)的備份,

FAT區(qū)域

文件分配表區(qū)(FAT區(qū))是FAT文件系統(tǒng)管理磁盤(pán)空間和文件的最重要區(qū)域,它保存邏輯盤(pán)數(shù)據(jù)區(qū)各簇使用情況信息,采用位示圖法來(lái)表示,文件所占用的存儲(chǔ)空間及空閑空間的管理都是通過(guò)FAT實(shí)現(xiàn)的。FAT區(qū)共保存了兩個(gè)相同的文件分配表,便于第一個(gè)損壞時(shí),還有第二個(gè)可用。FAT表的大小由該邏輯盤(pán)數(shù)據(jù)區(qū)共有多少簇所決定,取整數(shù)個(gè)扇區(qū)。數(shù)據(jù)區(qū)中每簇的使用情況通過(guò)查找其在FAT表中相應(yīng)位置的填充值可知曉。FAT32表中每簇占用四個(gè)字節(jié)(32位)表示,開(kāi)頭的8個(gè)字節(jié)(0H-07H字節(jié))用來(lái)存放該盤(pán)介質(zhì)類(lèi)型編號(hào)了,因此有效簇號(hào)從02H開(kāi)始使用。02H簇的使用情況由08H-0BH字節(jié)組成的32位二進(jìn)制數(shù)指示出來(lái),03H簇的使用情況由0CH一0FH字節(jié)組成的32位二進(jìn)制數(shù)指示出來(lái),依此類(lèi)推。未被分配使用和已回收的簇相應(yīng)位置寫(xiě)零,壞簇相應(yīng)位置填入特定值0FFFFFF7H標(biāo)識(shí),已分配的簇相應(yīng)位置填入非零值,具體為:如果該簇是文件的最后一簇,填入的值為0FFFFFFFH,如果該簇不是文件的最后一簇,填入的值為該文件占用的下一個(gè)簇的簇號(hào),這樣,正好將文件占用的各簇構(gòu)成一個(gè)簇鏈,保存在FAT32表中。

根目錄區(qū)域

它是在根目錄中存儲(chǔ)文件和目錄信息的目錄表。在FAT32下它可以存在分區(qū)中的任何位置,但是在早期的版本中它永遠(yuǎn)緊隨FAT區(qū)域之后。

數(shù)據(jù)區(qū)

數(shù)據(jù)區(qū)是被用來(lái)存放用戶數(shù)據(jù)的,位于FAT2后,同樣被劃分成簇,從2開(kāi)始編號(hào),即2號(hào)簇起始位置即是數(shù)據(jù)區(qū)的真正起始位置。

(1)根目錄

通常情況下根目錄位于2號(hào)簇,但是原則上FAT32文件系統(tǒng)中的根目錄可以位于數(shù)據(jù)區(qū)的任意位置。根目錄區(qū)保存根目錄下的各文件的目錄項(xiàng),每個(gè)目錄項(xiàng)占用32字節(jié)。FAT32文件系統(tǒng)中,根目錄作為數(shù)據(jù)區(qū)的一部分,采用與子目錄相似的管理方式,這一點(diǎn)與FAT12、FAT16明顯不同,如FAT16文件系統(tǒng)的根目錄區(qū)(ROOT區(qū))是固定區(qū)域、固定大小的,占用從FAT區(qū)之后緊接著的32個(gè)扇區(qū),最多保存512個(gè)目錄項(xiàng)(其根目錄保存的文件數(shù)受限的原因在此),作為系統(tǒng)區(qū)的一部分。

(2)子目錄

FAT32文件系統(tǒng)中,除了根目錄外,全部子目錄均在被使用過(guò)程中,根據(jù)具體的需要而建立。若在根目錄之下創(chuàng)建了一個(gè)新的子目錄,則稱該子目錄是根目錄的子目錄,并且稱根目錄為該子目錄的父目錄。子目錄被新建時(shí),在為其父目錄分配的簇中建立目錄項(xiàng),目錄項(xiàng)中描述了目錄的起始簇號(hào),并且為其在空閑的空間中分配一個(gè)簇并清零,將該簇的簇號(hào)記錄在其目錄項(xiàng)之中。為子目錄創(chuàng)建目錄項(xiàng)的同時(shí),為子目錄分配的簇中通過(guò)用前兩個(gè)目錄項(xiàng)來(lái)記錄其與對(duì)應(yīng)父目錄的關(guān)系。

(3)目錄項(xiàng)

FAT32文件系統(tǒng)由于結(jié)構(gòu)的不同,一般將目錄項(xiàng)分成四種:卷標(biāo)目錄項(xiàng)、“.”目錄項(xiàng)和“..”目錄項(xiàng)、短文件名目錄項(xiàng)、長(zhǎng)文件名目錄項(xiàng)。短文件名目錄項(xiàng)中存放子目錄或文件的短文件名、屬性、起始簇號(hào)、時(shí)間值、內(nèi)容大小等基本的信息。

啟動(dòng)扇區(qū)

格式如下

偏移(字節(jié))長(zhǎng)度(字節(jié))說(shuō)明

0x00 3 跳轉(zhuǎn)指令(跳過(guò)開(kāi)頭一段區(qū)域)

0x03 8 OEM名稱(空格補(bǔ)齊)。 MS-DOS檢查這個(gè)區(qū)域以確定使用啟動(dòng)記錄中的哪一部分?jǐn)?shù)據(jù)。常見(jiàn)值是IBM 3.3(在“IBM”和“3.3”之間有兩個(gè)空格)和MSDOS5.0.

0x0b 2 每個(gè)扇區(qū)的字節(jié)數(shù)。基本輸入輸出系統(tǒng)參數(shù)塊從這里開(kāi)始。

0x0d 1 每簇扇區(qū)數(shù)

0x0e 2 保留扇區(qū)數(shù)(包括啟動(dòng)扇區(qū))

0x10 1 文件分配表數(shù)目

0x11 2 最大根目錄條目個(gè)數(shù)

0x13 2 總扇區(qū)數(shù)(如果是0,就使用偏移0x20處的4字節(jié)值)

0x15 1 介質(zhì)描述 0xF8 單面、每面80磁道、每磁道9扇區(qū)

0xF9 雙面、每面80磁道、每磁道9扇區(qū)

0xFA 單面、每面80磁道、每磁道8扇區(qū)

0xFB 雙面、每面80磁道、每磁道8扇區(qū)

0xFC 單面、每面40磁道、每磁道9扇區(qū)

0xFD 雙面、每面40磁道、每磁道9扇區(qū)

0xFE 單面、每面40磁道、每磁道8扇區(qū)

0xFF 雙面、每面40磁道、每磁道8扇區(qū)

同樣的介質(zhì)描述必須在重復(fù)復(fù)制到每份FAT的第一個(gè)字節(jié)。有些操作系統(tǒng)(MSX-DOS 1.0版)全部忽略啟動(dòng)扇區(qū)參數(shù),而僅僅使用FAT的第一個(gè)字節(jié)的介質(zhì)描述確定文件系統(tǒng)參數(shù)。

0x16 2 每個(gè)文件分配表的扇區(qū)(FAT16)

0x18 2 每磁道的扇區(qū)

0x1a 2 磁頭數(shù)

0x1c 4 隱藏扇區(qū)

0x20 4 總扇區(qū)數(shù)(如果超過(guò)65535,參見(jiàn)偏移0x13)

0x24 4 每個(gè)文件分配表的扇區(qū)(FAT32)。擴(kuò)展基本輸入輸出系統(tǒng)參數(shù)塊從這里開(kāi)始。

0x24 1 物理驅(qū)動(dòng)器個(gè)數(shù)(FAT16)

0x25 1 當(dāng)前磁頭(FAT16)

0x26 1 簽名(FAT16)

0x27 4 ID (FAT16)

0x28 2 Flags (FAT32)

0x2a 2 版本號(hào) (FAT32)

0x2c 4 根目錄啟始簇 (FAT32)

0x2b 11 卷標(biāo)(非FAT32)

0x30 2 FSInfo 扇區(qū) (FAT32)

0x32 2 啟動(dòng)扇區(qū)備份 (FAT32)

0x34 2 保留未使用 (FAT32)

0x36 8 FAT文件系統(tǒng)類(lèi)型(如FAT、FAT12、FAT16)

0x3e 2 操作系統(tǒng)自引導(dǎo)代碼

0x40 1 BIOS設(shè)備代號(hào) (FAT32)

0x41 1 未使用 (FAT32)

0x42 1 標(biāo)記 (FAT32)

0x43 4 卷序號(hào) (FAT32)

0x47 11 卷標(biāo)(FAT32)

0x52 8 FatFS類(lèi)型(FAT32)

0x1FE 2 扇區(qū)結(jié)束符(0x55 0xAA)

這里描述的啟動(dòng)扇區(qū)能在如OS/2 1.3的啟動(dòng)盤(pán)上看到。早期的版本使用一個(gè)較短的基本輸入輸出系統(tǒng)參數(shù)塊,它們的啟動(dòng)代碼在前面開(kāi)始(如OS/2 1.1中是偏移0x2b)。

分配表

一個(gè)分區(qū)分成同等大小的簇,也就是連續(xù)空間的小塊。簇的大小隨著FAT文件系統(tǒng)的類(lèi)型以及分區(qū)大小而不同,典型的簇大小介于2KB到32KB之間。每個(gè)文件根據(jù)它的大小可能占有一個(gè)或者多個(gè)簇;這樣,一個(gè)文件就由這些(稱為單鏈表)簇鏈所表示。然而,這些鏈并不一定一個(gè)接著一個(gè)在磁盤(pán)上存儲(chǔ),它們經(jīng)常是在整個(gè)數(shù)據(jù)區(qū)域零散的儲(chǔ)存。

文件分配表(FAT)是映射到分區(qū)每個(gè)簇的條目列表。每個(gè)條目記錄下面五種信息中的一種。

●鏈中下一個(gè)簇的地址

●一個(gè)特殊的文件結(jié)束符(EOF)符號(hào)指示鏈的結(jié)束

●一個(gè)特殊的符號(hào)標(biāo)示壞簇

●一個(gè)特殊的符號(hào)標(biāo)示保留簇

●0來(lái)表示空閑簇

FAT32條目值:

FAT32 描述

0x?0000000 空閑簇

0x?0000001 保留簇

0x?0000002 - 0x?FFFFFEF 被占用的簇;指向下一個(gè)簇

0x?FFFFFF0 - 0x?FFFFFF6 保留值

0x?FFFFFF7 壞簇

0x?FFFFFF8 - 0x?FFFFFFF 文件最后一個(gè)簇

注意FAT32只使用32位中的28位。高4位通常是0但它們是保留位,不要更改它們。在上面的表中它們用問(wèn)號(hào)表示。

目錄表

目錄表是一個(gè)表示目錄的特殊類(lèi)型文件(現(xiàn)今通常稱為文件夾)。它里面保存的每個(gè)文件或目錄使用表中的32位條目表示。每個(gè)條目記錄名字、擴(kuò)展名、屬性(檔案、目錄、隱藏、只讀、系統(tǒng)和卷)、創(chuàng)建的日期和時(shí)間、文件/目錄數(shù)據(jù)第一個(gè)簇的地址,最后是文件/目錄的大小。

除了FAT12和FAT16文件系統(tǒng)中的根目錄表占據(jù)特殊的根目錄區(qū)域位置之外,所有其它的目錄表都存在數(shù)據(jù)區(qū)域。

合法的DOS文件名包括下面一些字符

大寫(xiě)字母A-Z

●數(shù)字0-9

●空格(盡管結(jié)尾的空格被作為填充而不是文件名的一部分)

●! # $ amp;amp; ( ) - @ ^ _ ` { } ~ '

●數(shù)值 128-255

dos文件名位于OEM字符集。

長(zhǎng)文件名(LFN)使用一個(gè)技巧存儲(chǔ)在FatFS上——在目錄表中添加假的條目。這些條目使用一個(gè)普通文件無(wú)法使用的卷標(biāo)屬性標(biāo)識(shí),普通文件無(wú)法使用是由于它們被大多數(shù)舊的MS-DOS程序忽略。很顯然,一個(gè)只包含卷標(biāo)的目錄被當(dāng)作空卷,這樣就允許刪除;使用長(zhǎng)文件名創(chuàng)建的文件在從普通的DOS刪除就會(huì)發(fā)生這樣的情形。

校驗(yàn)和也允許檢驗(yàn)長(zhǎng)文件名是否與8.3文件名匹配;當(dāng)一個(gè)文件刪除之后使用DOS在同一個(gè)目錄位置重新創(chuàng)建之后就會(huì)出現(xiàn)不匹配現(xiàn)象。校驗(yàn)和使用下面的算法計(jì)算。(注意pFcbName是指向如正常目錄條目中所顯示的文件名的指針,例如前八個(gè)字符是文件名,最后三個(gè)是擴(kuò)展名。點(diǎn)是隱含的。文件名中沒(méi)有使用的空間將使用空格(ASCII 0x20)補(bǔ)齊。例如,“Readme.txt”將記錄為"README TXT"。

特點(diǎn)

FAT32實(shí)際上是文件分區(qū)表采取的一種形式,它是相對(duì)于FAT16而言的。眾所周知,dosWindows 95采用的都是FAT16格式。至于FAT32,準(zhǔn)確地說(shuō)是在Windows95OSR2中第一次出現(xiàn)的,之所以沒(méi)有宣傳是因?yàn)楫?dāng)時(shí)該文件系統(tǒng)還不夠成熟,尚處于試探階段。那么為什么一定要推出FAT32呢?這主要是由其自身的優(yōu)越性決定的。

首先,它可以大大地節(jié)約磁盤(pán)空間。文件在磁盤(pán)上是以簇的方式存放的,簇里存放了一個(gè)文件就不能再存放另外的文件。假如一個(gè)磁盤(pán)的分區(qū)大小為512MB,基于FAT16的系統(tǒng)的簇的大小為8KB,而FAT32系統(tǒng)的簇的大小僅是4KB,那么,我們存放一個(gè)3KB的文件,F(xiàn)AT16系統(tǒng)就會(huì)有5KB的空間被浪費(fèi),而FAT32的浪費(fèi)則會(huì)少一些。如果分區(qū)達(dá)到1GB,F(xiàn)AT16的簇為16KB,而FAT32還是4KB,節(jié)省的也就更多了。

在推出FAT32文件系統(tǒng)之前,通常PC機(jī)使用的文件系統(tǒng)是FAT16。像基于MS-DOS,Win 95等系統(tǒng)都采用了FAT16文件系統(tǒng)。在Win 9X下,F(xiàn)AT16支持的分區(qū)最大為2GB。我們知道計(jì)算機(jī)將信息保存在HDD上稱為“簇”的區(qū)域內(nèi)。使用的簇越小,保存信息的效率就越高。在FAT16的情況下,分區(qū)越大簇就相應(yīng)的要增大,存儲(chǔ)效率就越低,勢(shì)必造成存儲(chǔ)空間的浪費(fèi)。并且隨著計(jì)算機(jī)硬件和應(yīng)用的不斷提高,F(xiàn)AT16文件系統(tǒng)已不能很好地適應(yīng)系統(tǒng)的要求。在這種情況下,推出了增強(qiáng)的文件系統(tǒng)FAT32。同F(xiàn)AT16相比,F(xiàn)AT32主要具有以下特點(diǎn):

(1)FAT32文件系統(tǒng)仍然將邏輯盤(pán)的空間劃分為三部分,依次是引導(dǎo)區(qū)(BOOT區(qū))、文件分配表區(qū)(FAT區(qū))、數(shù)據(jù)區(qū)(數(shù)據(jù)區(qū))。引導(dǎo)區(qū)和文件分配表區(qū)又合稱為系統(tǒng)區(qū)。

(2)FAT32的MBR和擴(kuò)展分區(qū)的結(jié)構(gòu)與dos的仍然相同。只不過(guò)引導(dǎo)程序的代碼不同而已。前一小節(jié)在介紹MBR所使用的就是Windows 98的引導(dǎo)程序。這里不再贅述。

(3)FAT32的引導(dǎo)區(qū)從第一扇區(qū)開(kāi)始,使用了三個(gè)扇區(qū),保存了該邏輯盤(pán)每扇區(qū)字節(jié)數(shù),每簇對(duì)應(yīng)的扇區(qū)數(shù)等等重要參數(shù)和引導(dǎo)記錄。之后還留有若干保留扇區(qū)。

(4)FAT32的文件分配表的結(jié)構(gòu)與DOS下的FAT16相同,仍然采用簇鏈結(jié)構(gòu)來(lái)管理文件,只不過(guò)FAT32的一個(gè)表項(xiàng)用4字節(jié)即32位罷了,這樣文件分配表可以有更多的簇,可以管理更大的磁盤(pán)空間。

(5)FAT32系統(tǒng)一簇對(duì)應(yīng)8個(gè)邏輯相鄰的扇區(qū),理論上,這種用法所能管理的邏輯盤(pán)容量上限為16TB,容量大于16TB時(shí),可以用一簇對(duì)應(yīng)16個(gè)扇區(qū),依此類(lèi)推。FAT16系統(tǒng)在邏輯盤(pán)容量介于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的邏輯盤(pán),采用FAT32的簇比采用FAT16的簇小很多,大大減少了空間的浪費(fèi)。

(6)FAT32的一個(gè)大的改進(jìn)之處就是根目錄區(qū)(ROOT區(qū))不再是固定區(qū)域、固定大小,可看作是數(shù)據(jù)區(qū)的一部分。因?yàn)楦夸浺迅臑楦夸浳募捎门c子目錄文件相同的管理方式,一般情況下從第二簇開(kāi)始使用,大小視需要增加,因此根目錄下的文件數(shù)目不再受最多512的限制。

(7)目錄區(qū)中的目錄項(xiàng)變化較多,一個(gè)目錄項(xiàng)仍占32字節(jié),可以是文件目錄項(xiàng)、子目錄項(xiàng)、卷標(biāo)項(xiàng)(僅根目錄有)、已刪除目錄項(xiàng)、長(zhǎng)文件名目錄項(xiàng)等。

功能

與以前的 FAT 文件系統(tǒng)實(shí)現(xiàn)相比,F(xiàn)AT32 提供了以下增強(qiáng)功能:FAT32 支持最大為 2 TB 的驅(qū)動(dòng)器。

注意:微軟 Windows 2000 僅能支持最大為 32 GB 的 FAT32 分區(qū)。

· FAT32 可以更高效地使用空間。FAT32 使用較小的簇(即,對(duì)于大小在 8 GB 以內(nèi)的驅(qū)動(dòng)器,使用 4 KB 的簇),這與大的 FAT 或 FAT16 驅(qū)動(dòng)器相比,可將磁盤(pán)空間的使用率提高10% 到 15%。

· FAT32 更穩(wěn)定可靠。FAT32 可以重新定位根文件夾,而且它使用文件分配表的備份副本,而不是使用默認(rèn)副本。此外,F(xiàn)AT32 驅(qū)動(dòng)器上的引導(dǎo)記錄也得到擴(kuò)展,包括了關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的備份副本。因此,與現(xiàn)有的 FAT16 驅(qū)動(dòng)器相比,F(xiàn)AT32 驅(qū)動(dòng)器不容易受單點(diǎn)故障的影響。

· FAT32 更靈活。FAT32 驅(qū)動(dòng)器上的根文件夾是普通的簇鏈,因此它可以位于驅(qū)動(dòng)器上的任何位置。以前對(duì)根文件夾數(shù)量的限制不復(fù)存在。此外,可以禁用文件分配表鏡像,這樣就可以讓文件分配表的副本而不是讓第一個(gè)文件分配表處于活動(dòng)狀態(tài)。這些功能允許您動(dòng)態(tài)重調(diào) FAT32 分區(qū)的大小。不過(guò)要注意,雖然 FAT32 的設(shè)計(jì)允許這一功能,但 微軟 將不在初始版本中實(shí)現(xiàn)此功能。

兼容性

軟硬件的兼容問(wèn)題

為了與現(xiàn)有程序、網(wǎng)絡(luò)和設(shè)備驅(qū)動(dòng)程序保持最大程度的兼容性,F(xiàn)AT32 盡可能不改動(dòng)現(xiàn)有的 Windows 體系結(jié)構(gòu)、內(nèi)部數(shù)據(jù)結(jié)構(gòu)、應(yīng)用程序編程接口(API) 和磁盤(pán)上的格式。然而,因?yàn)樾枰?4 字節(jié)來(lái)存儲(chǔ)簇值,所以許多內(nèi)部的和磁盤(pán)上的數(shù)據(jù)結(jié)構(gòu)以及發(fā)布的 API 都作了修改或擴(kuò)展。某些情況下,現(xiàn)有的 API 無(wú)法在 FAT32 驅(qū)動(dòng)器上運(yùn)行。大多數(shù)程序不會(huì)受這些更改的影響。現(xiàn)有工具和驅(qū)動(dòng)程序在 FAT32 驅(qū)動(dòng)器上應(yīng)能夠繼續(xù)正常運(yùn)行。不過(guò),MS-DOS 塊設(shè)備驅(qū)動(dòng)程序(例如 Aspidisk.sys)和磁盤(pán)工具需要經(jīng)過(guò)修改才能支持 FAT32 驅(qū)動(dòng)器。

所有 微軟 捆綁磁盤(pán)工具(格式化、Fdisk、碎片整理、基于 MS-DOS 和 Windows 的磁盤(pán)掃描)已經(jīng)過(guò)修改,可以在 FAT32 中正常運(yùn)行。此外,Microsoft 正在與一些主要設(shè)備驅(qū)動(dòng)程序和磁盤(pán)工具廠商協(xié)作,幫助他們修改其產(chǎn)品以支持 FAT32。

注意:不能使用 Microsoft DriveSpace 或 DriveSpace 3 壓縮 FAT32 卷。

FAT32 性能

轉(zhuǎn)換到 FAT32 文件系統(tǒng)是您可以在基于 Windows 98 的計(jì)算機(jī)上實(shí)現(xiàn)的最大的一種性能增強(qiáng)。

雙啟動(dòng)計(jì)算機(jī)

目前,在 Microsoft 操作系統(tǒng)中,只有 Windows 95 OSR2、Windows 98、Windows 2000 和Windows Me 可以訪問(wèn) FAT32 卷。MS-DOS、Windows 95 原始版和 Windows NT 4.0不識(shí)別 FAT32 分區(qū),它們無(wú)法從 FAT32 卷啟動(dòng)。此外,如果使用其他操作系統(tǒng)(例如,Windows 95 或 MS-DOS 啟動(dòng)盤(pán))啟動(dòng)計(jì)算機(jī),也無(wú)法正確訪問(wèn) FAT32 卷。

Windows 95 OSR2 和 Windows 98 可以在實(shí)模式下啟動(dòng)(例如為了運(yùn)行游戲)并可以使用 FAT32 卷。

創(chuàng)建 FAT32 驅(qū)動(dòng)器

在 Windows 95 OSR2、Windows 98 和 Windows Me 中,如果在大小超過(guò) 512 兆字節(jié) (MB) 的HDD上運(yùn)行Fdisk 工具,F(xiàn)disk 將提示您是否啟用大磁盤(pán)支持。如果回答“是”(啟用大磁盤(pán)支持),您創(chuàng)建的任何大于 512 MB 的分區(qū)都將被標(biāo)記為 FAT32 分區(qū)。

Windows 98 和 Windows Me 中還帶有一種 FAT32 轉(zhuǎn)換工具,您可以使用該工具將現(xiàn)有驅(qū)動(dòng)器轉(zhuǎn)換為 FAT32 文件系統(tǒng)。要使用該轉(zhuǎn)換工具,請(qǐng)按照下列步驟操作: 1. 單擊開(kāi)始,依次指向程序、附件、系統(tǒng)工具,然后單擊驅(qū)動(dòng)器轉(zhuǎn)換器 (FAT32)。

2. 單擊下一步。

3. 單擊希望轉(zhuǎn)換為 FAT32 文件系統(tǒng)的驅(qū)動(dòng)器,然后單擊下一步。

4. 按照屏幕上的說(shuō)明操作。

支持范圍

微軟 將支持 FAT32 文件系統(tǒng)的功能,以實(shí)現(xiàn)無(wú)錯(cuò)讀取和在實(shí)模式或保護(hù)模式下保存文件。Microsoft 支持 Windows 95 中所帶的實(shí)模式和保護(hù)模式工具。

對(duì)于舊式(較早的)程序,如果它們無(wú)法在 FAT32 卷上安裝,或者無(wú)法正確保存文件或讀取文件,則您必須與軟件包的生產(chǎn)廠商聯(lián)系。

注意:雖然 FAT32 文件系統(tǒng)所支持的硬盤(pán)容量最高可以達(dá)到 2 TB,但有些硬盤(pán)可能會(huì)因?yàn)?a href="/hebeideji/7243731341971456000.html">計(jì)算機(jī)基本輸入/輸出系統(tǒng) (BIOS) INT13 接口的限制而無(wú)法包含大于 7.8 GB 的可啟動(dòng)分區(qū)。請(qǐng)與硬件制造商聯(lián)系,以確定您計(jì)算機(jī)的 BIOS 是否支持更新后的 INT13 擴(kuò)展。

Windows 操作系統(tǒng)使用 FAT32 文件系統(tǒng)時(shí)存在以下限制: · 簇不能是 64 千字節(jié) (KB) 或更大。如果簇為 64 KB 或更大,有些程序(例如安裝程序)在計(jì)算磁盤(pán)空間時(shí)可能會(huì)出錯(cuò)。

· 卷必須包含至少 65,527 個(gè)簇,才能使用 FAT32 文件系統(tǒng)。您不能增加使用 FAT32 文件系統(tǒng)的卷上的簇大小,以致于該卷的最終簇?cái)?shù)小于 65,527。

· 在使用 FAT32 文件系統(tǒng)的卷上,簇最多是 268,435,445 個(gè)。對(duì)于文件分配表 (FAT) 的空間,每簇最大為 32 KB,據(jù)此計(jì)算出的最大磁盤(pán)大小大約為 8 太字節(jié) (TB)。

· Microsoft Windows 95 和 Microsoft Windows 98 附帶的“磁盤(pán)掃描”工具是 16 位程序。這樣的程序有一個(gè)內(nèi)存塊,該內(nèi)存塊的最大分配大小等于 16 MB 減去 64 KB。因此,Windows 95 或 Windows 98 的“磁盤(pán)掃描”工具無(wú)法處理使用 FAT32 文件系統(tǒng)(其 FAT 大小大于 16 MB 和 64 KB 之差)的卷。使用 FAT32 文件系統(tǒng)的卷上的 FAT 項(xiàng)使用 4 字節(jié),因此 ScanDisk 無(wú)法處理使用定義的簇?cái)?shù)大于 4,177,920(包括兩個(gè)保留的簇)的 FAT32 文件系統(tǒng)的卷上的 FAT。將 FAT 本身包括在內(nèi),按每簇最大 32 KB 計(jì)算,卷大小為 127.53 吉字節(jié) (GB)。

· 您不能減少使用 FAT32 文件系統(tǒng)的卷上的簇大小,以致于 FAT 的最終大小大于 16 MB 與 64 KB 之差。

· 在 Windows 2000 中您無(wú)法使用 FAT32 文件系統(tǒng)格式化大于 32 GB 的卷。Windows 2000 FastFAT 驅(qū)動(dòng)程序可以安裝和支持使用 FAT32 文件系統(tǒng)且大于 32 GB的卷(受到其他限制),但是您不能使用格式化工具創(chuàng)建一個(gè)這樣的卷。這種現(xiàn)象是設(shè)計(jì)使然。如果需要?jiǎng)?chuàng)建大于 32 GB 的卷,請(qǐng)改用 NTFS 文件系統(tǒng)。

備注:在嘗試格式化大于 32 GB 的 FAT32 分區(qū)時(shí),在進(jìn)程快結(jié)束時(shí)格式化會(huì)失敗,并出現(xiàn)以下錯(cuò)誤:

Logical Disk Manager:Volumesize too big.

Windows XP 中 FAT32 文件系統(tǒng)的限制

當(dāng)您在 Windows XP 中使用 FAT32 文件系統(tǒng)時(shí),請(qǐng)注意下列限制: · 簇不能等于或大于 64 KB。如果簇大小為 64 KB 或更大,則有些程序(例如安裝程序)可能會(huì)不正確地計(jì)算磁盤(pán)空間。

· FAT32 卷必須至少包含 65,527 個(gè)簇。您不能增加使用 FAT32 文件系統(tǒng)的卷上的簇大小,這樣會(huì)導(dǎo)致卷上的簇?cái)?shù)少于 65,527 個(gè)。

· 如果考慮到以下可變因素,則最大磁盤(pán)大小大約為 8 TB:一個(gè) FAT32 卷上允許的最大簇?cái)?shù)為 268,435,445,每個(gè)簇最大為 32 KB,另外還有文件分配表 (FAT) 所需的空間。

· 您不能減少 FAT32 卷上的簇大小,這樣會(huì)導(dǎo)致 FAT 的大小大于 16 MB 減去 64 KB。

· 在 Windows XP 安裝過(guò)程中,您不能使用 FAT32 文件系統(tǒng)格式化大于 32 GB 的卷。Windows XP 可以裝入和支持大于 32 GB 的 FAT32 卷(受到其他限制),但是您不能在安裝期間使用 Format 工具創(chuàng)建大于 32 GB 的 FAT32 卷。如果您需要格式化大于 32 GB 的卷,請(qǐng)使用 NTFS 文件系統(tǒng)來(lái)格式化。另一種方法是從 微軟 Windows 98 或 Microsoft Windows Millennium Edition (Me) 啟動(dòng)盤(pán)啟動(dòng),然后使用該磁盤(pán)上包含的 Format 工具。

有關(guān)如何使用 Microsoft Windows 98 或 Microsoft Windows Millennium Edition (Me) 啟動(dòng)盤(pán)格式化HDD的其他信息,請(qǐng)單擊下面的文章編號(hào),以查看 Microsoft 知識(shí)庫(kù)中相應(yīng)的文章:

255867 如何使用 Fdisk 和 Format 工具對(duì)硬盤(pán)進(jìn)行分區(qū)或重新分區(qū)

注意:當(dāng)您在 Windows XP 安裝過(guò)程中試圖格式化大于 32GB 的 FAT32 分區(qū)時(shí),在格式化過(guò)程快結(jié)束時(shí)操作將會(huì)失敗,并且您可能會(huì)收到以下錯(cuò)誤信息:

Logical Disk Manager:Volumesize too big.

· MS-DOS(Microsoft Windows 95 的原始版本)和 Microsoft Windows NT 4.0 及更低版本都不能識(shí)別 FAT32 分區(qū),因此無(wú)法從 FAT32 卷啟動(dòng)。

· 您不能在 FAT32 分區(qū)上創(chuàng)建大于 (2^32)-1 字節(jié)(即 4 GB 減去 1 個(gè)字節(jié))的文件。

FAT32格式理論上可以支持每個(gè)分區(qū)容量達(dá)到128TB,即簇的大小乘簇的數(shù)量32K*(2^32),但由于受到軟硬件的限制和其他方面的原因,不可能達(dá)到理論值。

FAT32數(shù)據(jù)恢復(fù)原理

由于FAT與FDT對(duì)數(shù)據(jù)的鏈?zhǔn)酱鎯?chǔ)管理的,可以通過(guò)鏈?zhǔn)剿阉鞑檎摇V挥蠪AT表和FDT配合使用,才能可以統(tǒng)一管理整個(gè)磁盤(pán)文件,也就可以準(zhǔn)確定位被刪除的文件的確切位置。

在 Window操作系統(tǒng)下對(duì)文件的刪除工作,是將FDT中該文件的第一個(gè)字符改“E5”來(lái)表示該文件已經(jīng)刪除,同時(shí)改寫(xiě)引導(dǎo)扇區(qū)的第二個(gè)扇區(qū)中表示該分區(qū)點(diǎn)用空間大小的相應(yīng)信息。因此,在設(shè)計(jì)的時(shí)候,根據(jù)其存儲(chǔ)結(jié)構(gòu),對(duì)相應(yīng)的地方進(jìn)行修改,搜索E5刪除標(biāo)志,再按被刪文件數(shù)據(jù)鏈進(jìn)行恢復(fù)。

具體步驟如下:

(1) 獲取磁盤(pán)分區(qū)類(lèi)型,分區(qū)存儲(chǔ)空間,FAT、FDT、文件等存儲(chǔ)的起始扇區(qū)。

(2) 獲取FAT、FDT表項(xiàng)內(nèi)的簇信息,即簇的刪除、未使用、壞簇、以及文件占用簇的起始扇區(qū)信息等。

(3) 通過(guò)FAT、FDT計(jì)算不同文件在物理扇區(qū)的起始位置,包括有標(biāo)識(shí)E5的刪除文件起始位置、文件類(lèi)型、占用大小和存儲(chǔ)的所在簇。

(4) 改變刪除位,通過(guò)第3步得到的結(jié)果,并按FAT表對(duì)文件進(jìn)行鏈?zhǔn)讲檎也⒕彺妫?dāng)達(dá)到文件所在簇尾時(shí),停止操作。

(5) 對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,生成文件。

(6) 對(duì)文件進(jìn)行異區(qū)存儲(chǔ)。而操作系統(tǒng)在讀寫(xiě)文件時(shí),會(huì)根據(jù)FDT中的起始單元,結(jié)合FAT表就可以知道文件在磁盤(pán)的具體位置,然后順序讀取每個(gè)簇的內(nèi)容,文件的查找如圖4-1所示。具體的方法如下:

(1)在文件目錄項(xiàng)FDT中找到存放在FAT表中的文件File的地址M(2)2*M得到FAT表中File文件數(shù)據(jù)鏈表首地址B。

(3)在FAT表中的B地址中,存放有文件FILE數(shù)據(jù)鏈表頭P。

(4)P*4得到在FAT表項(xiàng)中的下一個(gè)偏移位置,即下一個(gè)數(shù)據(jù)鏈表。

(5)如果下一個(gè)數(shù)據(jù)鏈表內(nèi)的信息為0FFFFFFH,則表示文件存儲(chǔ)已經(jīng)結(jié)束圖4-1查找文件流程需要說(shuō)明的是,新建文件時(shí),系統(tǒng)在FAT表中查找未用的簇記錄在新文件目錄項(xiàng)中做為首簇;FDT文件目錄項(xiàng)中,第0~7字節(jié)為文件名(若有剩余字節(jié)用20填充)第1字節(jié)表明了該文件的狀態(tài),第1字節(jié)又表明了文件的狀態(tài),00HE5H及其它字符。當(dāng)該字節(jié)為00H時(shí),表示該目錄項(xiàng)是空表項(xiàng),可以使用。當(dāng)為E5H時(shí),表示該目錄項(xiàng)以前用過(guò),但是文件被已經(jīng)刪除了。

小知識(shí)

在FAT32下,一個(gè)目錄只能夠容納65536個(gè)文件。微軟的官方文檔沒(méi)有給出。

適用條件

一般來(lái)說(shuō),只有在以下情況下才能創(chuàng)建(用Windows 95OSR2或者Windows 98)FAT32分區(qū):

HDD總?cè)萘勘仨毚笥?28MB。

■每個(gè)分區(qū)的大小必須大于528MB。

■用戶需要有一張OSR2安裝盤(pán),或者是由其他安裝OSR2的PC制作的OSR2啟動(dòng)盤(pán)(或者是適當(dāng)?shù)?a href="/hebeideji/5096805227029588721.html">Windows 98啟動(dòng)盤(pán))。

■當(dāng)OSR2/98的fdisk提示Do you wish to enable large disk support?Y or N(是否希望啟動(dòng)大硬盤(pán)支持?)時(shí),應(yīng)回答Y。如果回答N,那么創(chuàng)建的就將是FAT16磁盤(pán)分區(qū)。

應(yīng)用要點(diǎn)

1、FAT32的速度

FAT32通常與FAT16一樣快,在某些情況下,它會(huì)稍快一些。典型的情況下沒(méi)有明顯的性能差異。FAT32的主要優(yōu)點(diǎn)是它對(duì)大磁盤(pán)的利用比FAT16更為有效。

在實(shí)模式MS-DOS或Windows 98安全模式下,F(xiàn)AT32會(huì)比FAT16慢不少。如果要在MS-DOS下運(yùn)行程序,最好要運(yùn)行SMARTDRV。

3、雙重引導(dǎo)和FAT32

不能在需要對(duì)另一個(gè)操作系統(tǒng)進(jìn)行雙重引導(dǎo)的機(jī)器上使用FAT32,如Windows 95.Windows NT,Windows 3.1MS-DOS6.x。其他操作系統(tǒng)不能訪問(wèn)FAT32分區(qū)表。只要C驅(qū)是FAT16的,那么其他系統(tǒng)也可以引導(dǎo),但是其余FAT32的分區(qū)對(duì)其他操作系統(tǒng)來(lái)說(shuō)是不可見(jiàn)的。如果使用FAT16,那么Windows 98也支持在Windows98和以前的MS-DOS操作系統(tǒng)之間進(jìn)行雙重引導(dǎo),并用F4進(jìn)行切換,但是不能在Windows 95和Windows98之間進(jìn)行切換。

4、FAT32和防病毒軟件

在FAT32中使用防病毒軟件,改變驅(qū)動(dòng)器會(huì)引起分區(qū)表和引導(dǎo)記錄的更新。如果防毒軟件啟動(dòng),它可能截取更新分區(qū)表或引導(dǎo)記錄的要求,并詢問(wèn)是否允許更新。并且,在改變驅(qū)動(dòng)器后重啟計(jì)算機(jī)時(shí),防病毒軟件會(huì)發(fā)覺(jué)分區(qū)表或引導(dǎo)記錄被更改了,會(huì)提出“修復(fù)”的請(qǐng)求。不要讓防病毒軟件修復(fù)引導(dǎo)記錄或分區(qū)表,不然驅(qū)動(dòng)器和上面的所有的數(shù)據(jù)都將丟失。

參考資料 >

生活家百科家居網(wǎng)