FAT16和FAT32目錄結構分析

2021-10-08 19:33:13 字數 1685 閱讀 2809

fat16和fat32從原理上看是同一類技術,放在一起分析,有助於了解其細節差異;

先回歸一下fat16、fat32 分割槽的大致結構如下:

從分割槽結構上看,fat16和fat32目錄結構比較不一樣的地方在於:

fat16 多了乙個根目錄區,根目錄區由fdt目標表項組成,每乙個分割槽表項佔32位元組;由於根目錄區大小在格式化的時候就固定下來了,所以根目錄下的資料夾和檔案的個數是固定了,取決於dbr中根目錄項個數的配置,最多只能是512個

那麼子目錄存放在**?    存放在資料區中

fat32的根目錄存放在**? 一般在資料區的起始簇中;

那目錄項呢?  請看接下來描述

fat 檔案系統的乙個重要思想是把目錄(資料夾)當作乙個特殊的檔案來處理。

說明: 雖然根目錄不同於其他目錄或檔案,但根目錄組織形式和普通的目錄(資料夾)並沒有不同。

系統以32位元組為單位分配給目錄項的,最基本的描述如下:

0x0~0x7 定義的8位元組為檔名, 只有八個位元組? 我們平時乙個檔案通常可不止這麼長。

答: 早期的fat16 系統並沒有長檔名一說,windows作業系統已經完全支援在fat16 上的長檔名了。關於對長檔名的支援;

長檔名的支援:

為了相容dos與winddows 3.x在winddows 95以上的系統中,超過8.3格式的檔案或目錄實際儲存著兩個名字,乙個短檔名和乙個長檔名。當建立乙個長檔名時,其對應的短檔名的處理有以下三個原則:

a:系統取長檔名的前6個字元加上「~1」,形成短檔名,其副檔名保持不變

b:如果已經存在這個名字的檔案,數字自動加1,「~2」

c:如果有dos與winddows 3.x的非法字元,以「­_」替代。

".",".."目錄:

在子目錄所在的檔案目錄項區域中,總有兩個特殊的目錄,「.」目錄項和「..」目錄項可以用dos命令的dir檢視到。

說明a:「.」目錄項所描述的起始簇號,是子目錄本身所在簇號,

c:這兩個目錄都大小被設定0,同其他的資料夾目錄項一樣。

系統利用「.」目錄項(當前目錄)和「..」目錄項實現目錄之間的雙向聯絡,從而把整個檔案系統聯絡在一起。

卷標目錄項

卷標可以被隨時修改,存放在fdt中,

a:卷標屬於短檔名,最大支援11個字元。

b:不記錄起始簇號與大小

c:不記錄建立時間和最後訪問時間,只記錄修改時間

(i)短檔名的佔的目錄項第1個位元組被改寫成e5h。

(ii)長檔名佔的目錄項第1個位元組也被改寫成e5h。

(iii)子目錄的中的檔案:短檔名和長檔名的第1位元組被改寫為e5。

(iv)子目錄的中的檔案的起始簇號的高2位元組也被清0,此時此刻,子目錄也不容易恢復。

磁碟儲存 FAT16儲存詳解

磁碟分割槽方式有多種,目前比較主流的是fatntfs,本文記錄下fat16的一些內容。一 磁碟的總體結構 物理 乙個機械硬碟由很多碟片組成,乙個碟片有兩個面,對應兩個讀寫磁頭。磁頭以0 1 2.編號。每個碟片被劃分成多個同心圓磁軌,不同碟片上半徑相同的同心圓構成了乙個柱面,從外至裡編號為 0 1 2...

FAT32的協議總結

讀了fat32協議等,做了一些工作,學會不少東西,但是也有很多不懂得地方,希望明白人多來指教。在u盤進行fat32格式化後,發現除了mbr,dbr,data資料區外,還有一些資料區。就是用winhex發現的,有些資料段都沒見過,不知道是幹什麼的。就是那兩個unpartitioned space。fa...

FAT32學習筆記(一)

從最簡單的開始,如何在fat32格式的u盤裡找到乙個檔案?如果有u盤,那麼可以拿實際的u盤做試驗,這裡可以使用乙個image檔案來做試驗,效果一樣。在整個實驗過程當中,會不停的用到如下幾條命令 mount test.img mnt umount mnt hexdump c s x n x test....