導航:首頁 > 文件教程 > ft32文件目錄項表示

ft32文件目錄項表示

發布時間:2025-06-09 15:44:05

A. 一、嵌入式之FAT32文件系統(1)

參考文件

FAT32文件系統有幾個基本的幾個概念:

先拿一個真實的4G SD卡分析數據:

使用winhex物理方式查看,截一部分圖:

全稱Master Boot Record,即主引導記錄。
主引導記錄分為兩個部分,一個部分是前446位元組,另外一個部分是後64位元組。

前446個位元組,一般取值為0,不過有的時候也會有其他的設置值。

這部分也叫DPT,全稱Disk Partition Table,即磁碟分區表。
磁碟分區表有4個區,每個區有16位元組,總體是64位元組。因此,MBR位元組數為512位元組,剛好是一個扇區的數量。

DPT的4個部分,每一個部分的16位元組含義如下表:

00 82 03 00 0B E6 DC CA 00 20 00 00 00 E0 ED 00(16進制)

這里,就貼出來上面截圖的數據內容。(我們使用的是小位元組序)
0x00 :
通常的取值。

0x82 :
開始磁頭。

0x03 0x00 :
實際為0x0003,按照2進制編碼為0000 0000 0000 0011。
那麼開始扇區為:0。
開始柱面為:3。

0x0B :
分區類型,為Win95 FAT32類型。

0xE6 :
結束磁頭為230。

0xDC 0xCA:
實際為0xCADC,按照2進制編碼為1101 1100 1100 1010。
那麼結束扇區為:55。
結束柱面為:220。

0x00 0x20 0x00 0x00 :
實際為:0x00002000,也就是8192,為分區的開始扇區地址。那麼我們後面就可以從這里去找DBR。

0x00 0xE0 0xED 0x00 :
實際為:0x00EDE000,也就是15589376,為分區的總扇區數。
從這里其實可以算出SD卡的容量。
也就是:
分區大小:15589376x512 = 7981760512。這個值大約是7.612G。
從物理0地址到起始地址:8192*512 = 4194304
那麼總容量為:7981760512+4194304 = 7985954816。

該部分包括一個叫BPB的內容。

先截出DBR部分的實際SD卡上的內容:

在WinHex下使用邏輯磁碟打開FAT32文件系統的存儲介質來看,偏移位置與表示的含義有如下表所示:

25位元組的分區塊(BPB):

擴展分區BPB:

按照定義,將實際的圖 MBR.png分析如下:
從偏移為0x0BH地址開始:
00 02 10 96 04 02 00 00 00 00 F8 00 00 3F 00 FF 00 00 20 00 00 00 E0 ED 00 B5 1D 00 00

00 02 :
即0x0200,表示扇區位元組數,也就是512位元組。

10:
即0x10,每簇扇區數為16。也就是16 512=8 1024=8K。

96 04:
即0x0496,保留扇區數為1174。

02:
即0x02,FAT表份數為2。

00 00:
即0x0000,為保留。

00 00:
即0x0000,為保留。

F8:
即為本地硬碟。

00 00:
即0x0000,為保留。

3F 00:
即0x003F,即每磁軌扇區數為63。

FF 00:
即0x00FF,即磁頭數為255。

00 20 00 00:
即0x00002000,即隱藏扇區數為8192。

00 E0 ED 00:
即0x00EDE000,即磁碟總扇區數為15589376。

B5 1D 00 00 :
即0x001DB5,即FAT表佔用扇區數為7605。

好了,根據這些內容,可以計算出兩個參數:

FAT1的開始扇區 = 分區開始扇區+ 保留扇區=8192+1174 = 9366。
FAT2的開始扇區 = FAT1的開始扇區+FAT表佔用的大小 = 9366 + 7605 = 16971。
首目錄簇 = FAT1的開始扇區+FAT的表份數 x FAT表佔用的大小=9366+2*7605 = 24576。

繼續追蹤,找到首目錄簇中的已經新建的文件。

現在,先解析粘貼出來的每個部分的內容的含義。

具體內容下面的FAT中會說。

a.txt部分的解析:
41 20 20 20 20 20 20 20 54 58 54 20 18 8B 2A 90
96 4A A1 4A 00 00 0F 8C A1 4A 03 00 10 00 00 00

41 20 20 20 20 20 20 20:
表示文件名:「A TXT」

20 :
表示的是文件的屬性。歸檔。

18:
為系統保留。

8B:
創建時間的10ms位。也就是1390ms。

2A 90:
也就是0x902A,換成2進制為1001 0000 0010 1010 。表示的是創建時間。
細分如下:

則時間值為:
時:0x12 = 18,
分:0x1 = 1,
秒:0xAx 2s + 1390ms= 10x 2s + (1390ms) = 21s,
所以創建時間為18:01:21。

96 4A:
也就是0x4A96,換成2進制為0100 1010 1001 0110,表示的是創建日期。
細分如下:

則日期值為:
年:1980+0x25 = 2017,
月:0x4 = 4,
日:0x16= 22,

所以,創建日期為2017年4月22日。

A1 4A:
也就是0x4AA1,換成2進制為0100 1010 1010 0001,表示的是最後訪問日期。
則日期為:
年:1980+0x25 = 2017,
月:0x5 = 5,
日:0x1= 1,
所以,最後訪問日期為2017年5月1日。

00 00:
起始簇高16位。

0F 8C:
也就是0x8C0F,換成2進制為1000 1100 0000 1111,表示的是最近修改時間。

時:0x11 = 17,
分:0x20 = 32,
秒:0xf x 2 = 30s,
所以最近修改時間為17:32:30。

A1 4A:
也就是0x4AA1,換成2進制為0100 1010 1010 0001,表示的是最近修改日期。
則日期為:
年:1980+0x25 = 2017,
月:0x5 = 5,
日:0x1= 1,
所以,最近修改日期為2017年5月1日。

03 00:
即0x0003,表示起始簇低16位,也就是說,起始簇高位與起始簇低位相或,得到0x00000003,起始簇為3。

10 00 00 00:
即0x00000010,表示文件數據長度,也就是16位元組。

分析完a.txt,b.txt也一樣分析即可。

從而可以得到的是,a.txt的內容位置在:(3-2)*16+24576 = 24592上。
後使用winhex進行驗證,確認是正確的。

文件分配表(FAT),是FAT文件系統中用於磁碟數據索引和定位而引進的一種鏈式結構。在FAT文件系統中,文件的存儲依照FAT表制定的簇鏈式數據結構來進行。同時,FAT文件系統將組織數據時使用的目錄也抽象為文件,以簡化對數據的管理。

如DBR所述,偏移0EH處存儲了保留扇區的個數,而保留扇區數指的就是當前分區內DBR到FAT表之間的所有扇區的個數(包括DBR但不包括FAT表)。據此,可以定位FAT表所在的起始偏移位置了。

如DBR所述,偏移24H處存儲了保留扇區的個數,知道FAT2是緊鄰FAT1的。那麼FAT2表的位置為:FAT1的起始偏移地址+FAT1的大小。

FAT表由一系列大小相等的FAT表項組成,它有如下特性:

在FAT32文件系統中,根目錄的位置不再硬性地固定,可以存儲在分區內可定址的任意簇內,不過通常根目錄是最早建立的(格式化就生成了)目錄表。所以,我們看到的情況基本上都是根目錄首簇緊鄰FAT2,占簇區順序上的第1個簇(即2號簇)。同時,FAT32文件系統將根目錄當做普通的數據文件來看,所有沒有了目錄項數的限制,在需要的時候可以分配空簇,存儲更多的目錄項。

對於短文件名格式的目錄項:

注意:*表示此欄位在段文件目錄項中,不可取值0FH。若取值為0FH,目錄段為長文件名目錄段。

0BH欄位取值如下:

FAT32的一個重要的特點是完全支持長文件名。長文件名依然是記錄在目錄項中的。為了低版本的OS或程序能正確讀取長文件名文件,系統自動為所有長文件名文件創建了一個對應的短文件名,使對應數據既可以用長文件名定址,也可以用短文件名定址。不支持長文件名的OS或程序會忽略它認為不合法的長文件名欄位,而支持長文件名的OS或程序則會以長文件名為顯式項來記錄和編輯,並隱藏起短文件名。

長文件名的實現有賴於目錄項第12位元組屬性位元組,當此位元組的值為0FH時,支持長文件名的系統會將其當做長文件名的依據,而只支持短文件名的系統會認為是異常而忽略掉。系統將長文件名以13個字元為單位進行切割,每一組占據一個目錄項。所以可能一個文件需要多個目錄項,這時長文件名的各個目錄項按倒序排列在目錄表中,以防與其他文件名混淆。
長文件名中的字元採用unicode形式編碼,每個字元占據2位元組的空間。其目錄項定義如:

B. fat32的啟動扇區系統由哪三部分組成

簡單理解文件系統,就是文件的儲存方式。也可以理解為一個門牌系統,為儲存設備劃分門牌號,每個文件分配一個門牌,然後就能按照門牌找到文件。

今天主要介紹一下windows的三種文件系統。

FAT32
NTFS
exFAT
格式化硬碟的時候,Windows 系統會提供這三種文件系統讓你選。這時應該選哪一種呢?

1、FAT32

FAT(File Allocation Table,文件分配表)文件系統是windows操作系統所使用的一種文件系統,它的發展過程經歷了FAT12、FAT16、FAT32三個階段。FAT文件系統用「簇」作為數據單元。一個「簇」由一組連續的扇區組成,簇所含的扇區數必須是2的整數次冪。簇的最大值為64個扇區,即32KB。所有簇從2開始進行編號,每個簇都有一個自己的地址編號。用戶文件和目錄都存儲在簇中。

FAT文件系統的數據結構中有兩個重要的結構:文件分配表和目錄項:

文件分配表:文件和文件夾內容儲存在簇中,如果一個文件或文件夾需要多於一個簇的空間,則用FAT表來描述,如何找到另外的簇。FAT結構用於指出文件的下一個簇,同時也說明了簇的分配狀態。FAT12、FAT16、FAT32這三種文件系統之間的主要區別在與FAT項的大小不同。

目錄項:FAT文件系統的每一個文件和文件夾都被分配到一個目錄項,目錄項中記錄著文件名、大小、文件內容起始地址以及其他一些元數據。

FAT32 是最老的文件系統,所有操作系統都支持,兼容性最好。但是,它是為32位計算機設計的,文件不能超過 2 32 - 1 個位元組,也就是不能超過 4GB,分區不能超過 8TB。目前來看,這個文件系統有點過時了,只適合小文件,如果有大的視頻文件,就不能使用它。

特點:

FAT32文件系統用4個位元組(32位)空間來表示每個扇區配置文件的情形,所以叫FAT32。分區容量最低是512M,而上限的話不同的操作系統都不一樣,WinXP系統最大可以做到2TB的FAT32分區。

2、NTFS

NTFS 是 Windows 的默認文件系統,用來替換 FAT32。Windows 的系統盤只能使用這個系統,移動硬碟買來裝的也是它。與FAT32對比如下:

特點:

NTFS文件系統是windows NT核心和高級伺服器網路操作系統環境的文件系統。NTFS系統比FAT32的可靠性更高,可以支持更大的分區和更大的文件,此外還有不少FAT32沒有的功能,比如壓縮分區、文件索引、數據保護和恢復、加密訪問等。

3、exFAT

exFAT 可以看作是 FAT32 的64位升級版, ex 就是 extended 的縮寫(表示"擴展的 FAT32"),功能不如 NTFS,但是解決了文件和分區的大小問題,兩者最大都可以到 128PB。由於 Mac 和 Linux 電腦可以讀寫這種系統,所以移動硬碟的文件系統可以改成它。 (全稱Extended File Allocation Table File System,擴展FAT,即擴展文件分配表)是Microsoft在 Windows Embeded 5.0 以上(包括 Windows CE 5.0 、6.0、 Windows Mobile5、6、6.1)中引入的一種適合於快閃記憶體的文件系統,為了解決 FAT32 等不支持4G及其更大的文件而推出。對於快閃記憶體, NTFS文件系統不適合使用,exFAT更為適用。

特點:

exFAT文件系統是微軟在windows embeded5.0以上引入的一種適合於快閃記憶體的文件系統,主要是為了解決FAT32不支持4G或更大文件的問題而推出的。

FAT32與exFAT可用4GB文件的區別

大多數U盤在格式化時默認FAT32,最大優點就是在一個不超過8GB的分區中,FAT32的每個簇容量都固定為4KB,與前代相比可以大大地減少磁碟的浪費,提高磁碟利用率。

雖然對於最大分區容量的支持上面,FAT32的2TB最大分區容量至今仍不過時,但FAT32無法傳輸並存放超過4GB容量的光碟ISO鏡像、高清視頻、各種圖形作品文件等等,這是最致命的弊端。而exFAT格式在蘋果本或者是Windows電腦上都可以格式化,並且在兩個系統之間可以互相無障礙使用。相比之下,exFAT格式就沒有4GB文件傳輸限制了。

其實FAT32與exFAT存在著一個升級關系,這兩種文件系統都支持OS X系統與Windows系統,如果你將U盤格式化成這兩種文件系統,在不同操作系統電腦上可以暢通無阻地使用。

NTFS相比FAT會讓快閃記憶體性能降低

NTFS是相當流行的,但多見於硬碟。XP、Vista、Win7默認都會將分區格式化為NTFS系統,可以說NTFS是目前最好的磁碟文件系統。

U盤在格式化為NTFS時,實際可用容量與其他文件系統形式也有所差別,雖然使用中感受並不是很大。另外,在格式化U盤時,容量在64G甚至更大規格時,系統識別自動格式化為exFAT與NTFS格式,會便於優盤在不同操作系統電腦上無障礙使用。

但是,NTFS也有他的缺點,NTFS分區採用「日誌式」,因為要記錄磁碟的詳細讀寫操作,對U盤這種快快閃記憶體儲介質會造成較大的負擔,比如同樣存取一個文件或目錄,在NTFS上的讀寫次數就會比FAT32更多,理論上NTFS格式的U盤比較容易損壞。並且由於U盤帶寬有限,NTFS頻繁讀寫占據通道會讓磁碟性能降低。

總結

FAT32與exFAT之間最大的差別在於能否支持4GB及以上容量單個文件的傳輸、查看與編輯;而FAT系列文件系統與NTFS之間最大的區分在於文件存取的方式,後者長期使用可能會讓快閃記憶體類存儲產品性能降低.

C. 請指出下面FAT32分區中的目錄項的文件名,文件屬性和起始簇號

文件名:44 4F 43 53 即:DOCS
文件屬性:10 即:子目錄
起始簇號:00 00 D2 06

D. fat文件系統採用什麼來記錄文件的名稱

FAT文件系統採用目錄項(Directory Entries)來記錄文件的名稱。

FAT(File Allocation Table)文件系統是一種早期的、相對簡單的文件系統,廣泛應用於各種存儲設備,如快閃記憶體檔、SD卡和舊版Windows操作系統中。在FAT文件系統中,文件的組織和管理主要通過文件分配表來實現,而記錄文件名稱這一任務則交由目錄項完成。

具體來說,目錄項是存儲在磁碟上的數據結構,它們包含了關於文件和目錄的元數據,如文件名、文件大小、創建時間等。在FAT文件系統中,每個文件或目錄都對應一個或多個目錄項。這些目錄項被組織在特定的目錄結構中,通常是一個線性的列表或是一個層級化的樹狀結構。當用戶創建一個新文件時,系統會在目錄區域分配一個新的目錄項,並將文件的名稱和其他相關信息寫入這個目錄項中。

以FAT32為例,這是FAT文件系統的一種版本,它使用32位的文件分配表來管理磁碟空間。在FAT32文件系統中,目錄項是構成文件目錄的基礎單元,每個目錄項佔用固定的磁碟空間,通常是32位元組。這個目錄項中包含了文件名、文件屬性、文件大小以及指向文件數據在磁碟上位置的指針等信息。當用戶需要訪問某個文件時,操作系統會首先查找目錄項,根據目錄項中的信息定位到文件數據在磁碟上的具體位置,從而實現對文件的讀寫操作。

總的來說,FAT文件系統通過目錄項來記錄文件的名稱和其他關鍵信息,這種機制雖然簡單直觀,但隨著文件數量的增加和磁碟容量的擴大,也暴露出了一些性能和管理上的局限性。盡管如此,FAT文件系統因其兼容性好、實現簡單等特點,在特定場景下仍然有著廣泛的應用。

E. FAT32系統文件詳解

MBR:主引導記錄 (主引導記錄區)

DBR:DOS 引導扇區 (引導扇區)

FAT:文件分配表 (文件分配表)

硬體:本文SD卡為Kingston 4GB,採用FAT32格式,簇大小4KB,每扇區512位元組。

第一章 硬碟與SD卡結構

1.1 硬碟結構

硬碟結構圖展示了硬碟的構成,硬碟的主引導扇區(MBR)位於物理地址0處,包含MBR與DPT(分區表),其中DPT由4個分區表組成,每個16位元組。分區表中的信息,如起始地址、位元組數、類型、結束地址等,對理解分區與數據存儲至關重要。

1.2 MBR分析

MBR包括主引導記錄與分區表,分區表中的信息指示了分區的偏移量與大小。分區表中的內容對於管理多分區硬碟特別重要。

1.3 SD卡結構

SD卡默認為一個分區,通過WinHex打開SD卡,可以看到非分區空間與分區1。非分區空間即為MBR所在區域,分區1起始於第8192個扇區,剩餘扇區功能未知。

第二章 FAT32文件系統

2.1 FAT文件系統簡介

FAT32文件系統採用簇作為數據存儲單元,簇由連續的扇區組成,最大可達64個扇區。FAT表記錄文件的簇分配狀態與簇號,目錄項則包含文件名、大小等信息。FAT32文件系統在硬碟結構中的分布與功能作用清晰。

2.2 FAT32文件系統結構

FAT32文件系統由保留區、FAT表與數據區構成。保留區包含系統引導扇區(DBR),FAT表包含FAT1與FAT2,數據區存儲用戶數據。

2.2.1 保留區

保留區由若干個扇區組成,其大小記錄在DBR中,通常為32、34或38個扇區。DBR中包含系統標志、版本號、扇區位元組數等重要信息。

2.2.1.1 引導扇區(DBR)

DBR的大小為512位元組,包含跳轉指令、文件系統標志、扇區位元組數、簇數等關鍵數據。

2.2.2 文件分區FAT表

FAT表位於保留區之後,包含FAT1與FAT2,用於記錄簇的分配狀態與簇號。FAT表與數據區中的簇號對應,提供文件管理功能。

2.2.3 數據區

數據區用於存儲用戶數據,緊隨在FAT表之後,簇從2號開始編號。數據區中的根目錄通常位於起始扇區,2號簇,記錄文件與目錄信息。

2.2.3.1 根目錄

根目錄由目錄項組成,目錄項包含文件名、大小、起始簇號等信息。根目錄所在扇區為數據區起始位置,2號簇,計算公式可得具體地址。

通過以上內容,我們深入了解了FAT32文件系統的結構與工作原理,包括MBR、DBR、FAT表與數據區的構成與功能,以及如何管理文件與目錄。

閱讀全文

與ft32文件目錄項表示相關的資料

熱點內容
win10電腦怎麼發送大型文件 瀏覽:919
錢到app怎麼申請 瀏覽:68
mac刪除桌面上的文件 瀏覽:754
教你如何做的網站有哪些 瀏覽:262
如何備份電腦上的軟體及數據 瀏覽:350
如何查詢微信號注冊過的APP 瀏覽:590
少兒機器人編程需要什麼特長 瀏覽:843
找不到後台運行文件 瀏覽:399
線性相關要多少個實驗數據 瀏覽:97
小米手機桌面的文件夾為啥不能折疊 瀏覽:523
ps魔術工具 瀏覽:595
下載系統鏡像源文件 瀏覽:944
網站前台展示 瀏覽:806
如何減去相同的數據 瀏覽:823
百度怎麼找回刪除的app 瀏覽:46
30天自製操作系統光碟文件 瀏覽:844
5d3連接蘋果手機 瀏覽:739
js中獲取file 瀏覽:233
zip壓縮文件如何刪除 瀏覽:445
光貓信號數據多少正常 瀏覽:601

友情鏈接