讀了fat32協議等,做了一些工作,學會不少東西,但是也有很多不懂得地方,希望明白人多來指教。
在u盤進行fat32格式化後,發現除了mbr,dbr,data資料區外,還有一些資料區。就是用winhex發現的,有些資料段都沒見過,不知道是幹什麼的。
就是那兩個unpartitioned space。
fat32裡就三個部分比較重要,mbr,drb中的bpb和data區。可能我還沒看完,目前覺得fat表在讀取fat32資料的功能上,沒什麼用處。
1. mbr
mbr中比較重要的是兩個資料:
一是有四個位元組記錄了這塊fat32格式的儲存區總容量大小是多少。
二是有四個位元組記錄了這塊fat32的dbr在**。
2. dbr
通過mbr中的偏移,可以找到dbr的位址。然後根據協議裡面的bpb的資料結構什麼的,這些網路上可以很容易搜尋到。
從dbr這塊找出來的比較重要的資料是:
a. 每簇包含幾個扇區
b. 每扇區包含幾個位元組
c. 在fat分割槽之前所隱藏的扇區數
d. 該卷總扇區數
e. 乙個fat表所佔的扇區數
f. 總共有幾個fat表
g. 根目錄所在第乙個簇的號
然後通過這些又可以計算出幾個數值來:
a. fat表起始位址 = dbr位址 + 保留扇區數
b. 第2個fat表起始位址 = 第1個fat表起始位址 + fat表所佔空間
c. 根目錄位址 = dbr位址 + fat表數目 * fat表所佔空間 + 保留扇區空間
3. dat
在進入到根目錄之後,就可以找表項了。每32位元組代表乙個目錄或者檔案。
這裡會有點凌亂,因為有些刪除的資料的表項也在這裡,所以從邏輯位址的表面來看,檔案是不連續的。所以這裡要做點區分工作,把無效資料過濾掉,哈哈。
FAT32學習筆記(一)
從最簡單的開始,如何在fat32格式的u盤裡找到乙個檔案?如果有u盤,那麼可以拿實際的u盤做試驗,這裡可以使用乙個image檔案來做試驗,效果一樣。在整個實驗過程當中,會不停的用到如下幾條命令 mount test.img mnt umount mnt hexdump c s x n x test....
FAT32的幾個問題
參考 在 中的mbr和dbr的6處,指出了當前分割槽的扇區數,占用4個位元組。每個扇區是512位元組,那麼最大容量為 2 32 1 512 2tb。fat32是以4個位元組代表1簇,但4個位元組中只用到了低28位 高4位保留 因此有2 28個簇,即268435456簇。如果每簇位4kb,那麼2684...
FAT16和FAT32目錄結構分析
fat16和fat32從原理上看是同一類技術,放在一起分析,有助於了解其細節差異 先回歸一下fat16 fat32 分割槽的大致結構如下 從分割槽結構上看,fat16和fat32目錄結構比較不一樣的地方在於 fat16 多了乙個根目錄區,根目錄區由fdt目標表項組成,每乙個分割槽表項佔32位元組 由...