FAT12

是IBM第一台個人電腦中的MS-DOS 1.0使用的檔案系統,主要用於軟碟。初期的FAT就是現在俗稱的FAT12。作為軟碟的檔案系統,它有幾項限制:不支持分層性結構,叢集定址只有12位(這使得控制FAT有些棘手)而且只支持最多32M(216)的分區。

主磁碟結構

  • 引導扇區(Boot Sector)
    位於第一個扇區,在軟碟上就是0柱面(磁軌)0磁頭1扇區。
  • 檔案分配表(FAT)
    緊接著引導扇區的是兩個完全相同的FAT表,每個FAT表占用9個扇區
  • 根目錄區
    FAT表之後是根目錄區,根目錄區長度不固定
  • 數據區
    根目錄後面就是數據區

FAT12引導扇區的格式

格式如下:
名稱
偏移
長度
內容
軟碟參考值
BS_jmpBoot
0
3


jmp LABEL_START
nop
BS_OEMName
3
8
廠商名
'ForrestY'
BPB_BytsPerSec
11
2
每扇區位元組數
0x200(即十進制512)
BPB_SecPerClus
13
1
每簇扇區數
0x01
BPB_RsvdSecCnt
14
2
Boot記錄占用多少扇區
0x01
BPB_NumFATs
16
1
共有多少FAT表
0x02
BPB_RootEntCnt
17
2
根目錄檔案數最大值
0xE0 (224)
BPB_TotSec16
19
2
扇區總數
0xB40(2880)
BPB_Media
21
1
介質描述符

0xF0
BPB_FATSz16
22
2
每FAT扇區數
0x09
BPB_SecPerTrk
24
2
每磁軌扇區數
0x12
BPB_NumHeads
26
2
磁頭數
0x02
BPB_HiddSec
28
4
隱藏扇區數
0
BPB_TotSec32
32
4
如果BPB_TotSec16是0,由這個值記錄扇區數
0xB40(2880)
BS_DrvNum
36
1
中斷13的驅動器號
0
BS_Reserved1
37
1
未使用
0
BS_BootSig
38
1

擴展引導標記
0x29
BS_VolD
39
4
卷序列號
0
BS_VolLab
43
11
卷標
'OrangeS0.02'
BS_FileSysType
54
8
檔案系統類型
'FAT12'
引導代碼
62
448
引導代碼、數據及其他填充字元等

結束標誌
510
2

0xAA55

檔案分配表

它包含有兩份檔案分配表,這是出於系統冗餘考慮,儘管它很少使用,即使是磁碟修復工具也很少使用它。它是分區信息的映射表,指示簇是如何存儲的。
每個FAT項占12bit,這也所被成為FAT12的原因,FAT項的值代表的是檔案下一個簇號,但如果值大於等於0xFF8,則表示當前簇已經是本檔案的最後一個簇。如果值是0xFF7,表示它是一個壞簇。
一個FAT項可能跨越兩個扇區,編碼實現的過程要考慮在內。

根目錄區

根目錄區位於第二個FAT表之後,開始扇區號為19,它由若干個目錄條目(Directory Entry)組成,條目最多有BPB_RootEntCnt個。每個條目占用32個位元組,它的格式如下:
名稱
偏移
長度
描述
DIR_Name
0
0xB
檔案名稱8位元組,擴展名3位元組
DIR_Attr
0xB
1
檔案屬性
保留
0xC
10

DIR_WrtTime
0x16
2
最後修改時間
DIR_WrtDate
0x18
2
最後修改日期
DIR_FstClus
0x1A
2
此條目對應的開始簇號
DIR_FileSize
0x1C
4
檔案大小

數據區

數據區在根目錄區後,數據區開始扇區號為BPB_RootEntCnt * 32 / BPB_BytsPerSec。

相關詞條

相關搜尋

熱門詞條

聯絡我們