FAT16文件系统之FAT表浅谈(三)
FAT16文件系統的FAT表分析
1:FAT表的作用及結構特點
??????????????? FAT即文件系統分配表,對于FAT文件系統來講是非常重要的一環。其主要作用如下
(1)??????FAT文件系統一般有兩份FAT,它們由格式化程序對分區進行格式化的時候創建,FAT1是活動FAT,FAT2是備份FAT。
(2)??????FAT1跟在DBR之后,FAT2跟在FAT1之后中間沒有空的扇區
(3)??????FAT表由FAT表項構成的,我們把FAT表項簡稱為FAT項。每個FAT項的大小有12位,16位,32位,三種情況,對應的分別FAT12,FAT16,FAT32文件系統。
(4)??????每個FAT項都有一個固定的編號,這個編號是從0開始。
(5)??????FAT表的前兩個FAT項有專門的用途:0號FAT項通常用來存放分區所在的介質類型,例如硬盤的介質類型為“F8”,那么硬盤上分區FAT表第一個FAT項就是以“F8”開始,1號FAT項則用來存儲文件系統的骯臟標志,表明文件系統被非法卸載或者磁盤表面存在錯誤。
(6)??????分區的數據區每一個簇都會映射到FAT表中的唯一一個FAT項。因為0號FAT項與1號FAT項已經被系統占用,無法與數據區的族形成映射,所以從2號FAT項開始跟數據區中的第一個簇映射,正因為如此,數據區中的第一個族的編號為2,這也是沒有0號簇與1號簇的原因,然后3號簇與3號FAT項映射,4號簇與4號FAT項映射。。。。。。。。。。
(7)??????分區格式化后,用戶文件以簇為單位存放在數據區中,一個文件至少占用一個簇。當一個文件占用多個簇時,這些族的簇號不一定是連續的,但這些簇號在存儲該文件時就確定了順序,即每一個文件都有其特定的“簇號鏈”。在分區上的每一個可用的簇在FAT中有且只有一個映射FAT項,通過在對應簇號的FAT項內填入“FAT項值”來表明數據區中的該簇是已占用,空閑或者是壞簇三種狀態之一。
??????????????????????????????????????? FAT表中每個FAT項可取的表項值及其含義
| FAT項值(FAT12) | FAT項值(FAT16) | FAT項值(FAT32) | 含義 |
| 000H | 0000H | 00000000H | 未使用的簇 |
| 002H – FEFH | 0002H - FFEFH | 00000002H – 0FFFFFFEH | 一個已分配的族號 |
| FF0H – FF6H | FFF0H – FFF6H | 0FFFFFF0H – 0FFFFFF6H | 保留 |
| FF7H | FFF7H | 0FFFFFF7H | 壞簇 |
| FF8H - FFFH | FFF8H - FFFFH | 0FFFFFF8H – 0FFFFFFFH | 文件結束簇 |
其中損壞的族可以在格式化過程中,由格式化程序發現并記錄在相應的FAT項中。在一個簇中,有一個壞的扇區,該簇就不能使用。
(8)FAT16文件系統的FAT項是16位的,也就是說每個FAT項占2字節。16位的FAT項最多可管理65535個簇。在Windows 2000系統之前簇最大為64個扇區,這樣,采用16位FAT的系統最多只能管理32 * 65535 約于 2G的分區。現在簇大小可以達到128個扇區,這樣FAT16就可以管理4G的分區了。
(8)??????綜合上面的說明可以看出,FAT表的功能主要有如下:
A:表明分區所在介質類型。FAT表的0號FAT項來表明分區所在的介質類型,該FAT項的首字節與BPB中介質描述符所對就的介質類型相同
B:表明一個文件所占用各簇的簇鏈分配情況。每個簇在FAT表中映射一個FAT項,FAT項以指針的方式記錄在文件的簇。
C:標明可用簇與壞簇。壞簇是在分區格式化時發現的,并把相應的簇表的項寫入FFF7H.用戶不能使用。
分區上未被使用但可用的“空簇“的FAT項值為0,
總結
以上是生活随笔為你收集整理的FAT16文件系统之FAT表浅谈(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MIT,Apache 等协议如何理解?
- 下一篇: 记录配置微信外链跳转小程序踩坑(H5跳转