FAT file system summary
MBR : Master Boot Record (MBR)
DBR : DOS Boot Record (DOS boot record, partition boot sector is located)
BPB : BIOS Parameter Block (BIOS Parameter Block)
FAT : File Allocation Table (File Allocation Table)
Sector : Sector
Cluster : Cluster
First, the hard disk structure
Below is a schematic diagram of the structure of a hard disk partition containing 4, which is divided into three primary partition and an extended partition.
Two, FAT file system structure
FAT file system is composed of several parts arranged in the following sequence consisting of:
0 - Reserved Region
1 - FAT Region
2 - Root Directory Region (FAT32 without this part)
3 - File and Directory Data Region
FAT data storage system using the small end (Little Endian) mode, it is important to note that, in using the big-endian (Big Endian) system, when the multi-byte read data must be converted, otherwise read the data is incorrect.
For example: a 32-bit data in the FAT 0x12345678 way to preserve as shown below:
Third, the main lead guide sector
Hard disk master boot sector = Master Boot Record (MBR) + hard disk partition table (DPT) MBR: the sector offset address 0 ~ 0x1BD
DPT: offset address within the sector 0x1BE ~ 0x1FD, which is divided into four partition table:
The first partition table: 0x1BE ~ 0x1CD
The second partition table: 0x1CE ~ 0x1DD
The third partition table: 0x1DE ~ 0x1ED
The fourth partition table: 0x1EE ~ 0x1FD
Each partition table information in the table below:
|
|
Partition table information
|
|
|
|
|
|
Byte displacement
|
Field Length
|
Field names and definitions
|
|
|
|
|
|
0x00
|
BYTE
|
Boot Indicator (Boot Indicator), indicating whether the partition
|
|
Is the active partition, 0x80 = active partition, 0x00 = non-active partition
|
|
|
|
|
0x01
|
BYTE
|
Began to head (Starting Head)
|
|
|
|
|
|
0x02
|
6Bits
|
Start sector (Starting Sector), only a 0 to 5. After
|
|
Face two (first 6, and 7) were used to start a cylindrical field
|
|
|
|
|
|
|
|
|
|
|
Start cylinder (Starting Cylinder), in addition to start sector
|
|
0x03
|
10Bits
|
The last two fields, also the use of the cylinder to form a
|
|
|
|
Value. Starting Cylinder is a 10-digit maximum is 1023
|
|
0x04
|
BYTE
|
System ID (System ID), defines the type of partition, see
|
|
The following table
|
|
|
|
|
0x05
|
BYTE
|
The end of the head (Ending Head)
|
|
|
|
|
|
0x06
|
6Bits
|
End sector (Ending Sector), using only 0 to 5. Most
|
|
After two (6,7 bit) is used by the end of the cylindrical field
|
|
|
|
|
|
|
The end of the cylinder (Ending Cylinder), in addition to words ending sector
|
|
0x07
|
10Bits
|
The last two segments, but also the one used to form the cylindrical
|
|
|
|
Value. The end of the cylinder is a 10-bit number, a maximum of 1023
|
|
0x08
|
DWORD
|
The relative number of sectors (Relative Sectors), from the opening of the disk
|
|
The beginning of the partition to the beginning of the displacement amount calculated in the sector
|
|
|
|
|
0x0C
|
DWORD
|
The total number of sectors (Total Sectors), the partition sector total
|
|
Number
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Type Value Partition signs and their meanings
|
|
|
|
|
|
|
|
|
|
|
|
Type Value
|
Meaning
|
Type Value
|
Meaning
|
|
|
|
(HEX)
|
(HEX)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0
|
Empty. DOS or windows are not allowed
|
5C
|
Priam Edisk
|
|
|
|
Use shall be deemed unlawful
|
|
|
|
|
|
|
|
|
|
1
|
FAT12
|
61
|
Speed Stor
|
|
|
|
2
|
XENIX root
|
63
|
GNU HURD or Sys
|
|
|
|
3
|
XENIX usr
|
64
|
Novell Netware
|
|
|
|
6
|
FAT16 partition when less than 32M
|
65
|
Novell Netware
|
|
|
|
0x04
|
|
|
|
|
|
|
|
|
|
7
|
HPFS / NTFS
|
70
|
Disk Secure Mult
|
|
|
|
8
|
AIX
|
75
|
PC / IX
|
|
|
|
9
|
AIX bootable
|
80
|
Old Minix
|
|
|
|
0A
|
OS / 2 Boot Manage
|
81
|
Minix / Old Linux
|
|
|
|
0B
|
Win95 FAT32
|
82
|
Linux swap
|
|
|
|
0C
|
Win95 FAT32
|
83
|
Linux
|
|
|
|
0E
|
Win95 FAT16
|
84
|
0s / 2 hidden C:
|
|
|
|
0F
|
Win95 Extended (more than 8GB)
|
85
|
Linux extended
|
|
|
|
10
|
OPUS
|
86
|
NTFS volume set
|
|
|
|
11
|
Hidden FAT12
|
87
|
NTFS volume set
|
|
|
|
12
|
Compaq diagmost
|
93
|
Amoeba
|
|
|
|
14
|
Hidden FAT16 <32MB
|
94
|
Amoeba BBT
|
|
|
|
16
|
HiddenFAT16
|
A0
|
IBM Thinkpad hidden
|
|
|
|
17
|
Hidden HPFS / NTFS
|
A5
|
BSD/386
|
|
|
|
18
|
AST Windows swap
|
A6
|
Open BSD
|
|
|
|
1B
|
Hidden FAT32
|
A7
|
NextSTEP
|
|
|
|
1C
|
Hidden FAT32 partition
|
B7
|
BSDI fs
|
|
|
|
(Using LBA-mode INT 13
|
B8
|
BSDI swap
|
|
|
|
|
extensions)
|
|
|
|
|
|
|
|
|
|
1E
|
Hidden LBA VFAT partition
|
BE
|
Solaris boot partition
|
|
|
|
24
|
NEC DOS
|
C0
|
DR-DOS/Novell DOS
|
|
|
|
secured partition
|
|
|
|
|
|
|
|
|
|
3C
|
Partition Magic
|
C1
|
DRDOS / sec
|
|
|
|
40
|
Venix 80286
|
C4
|
DRDOS / sec
|
|
|
|
41
|
PPC Perp Boot
|
C6
|
DRDOS / sec
|
|
|
|
42
|
NTFS Dynamic Partitions
|
C7
|
Syrinx
|
|
|
|
4D
|
QNX4.x
|
DB
|
CP / M / CTOS
|
|
|
|
4E
|
QNX4.x 2nd part
|
E1
|
DOS access
|
|
|
|
4F
|
QNX4.x 3rd part
|
E3
|
DOS r / 0
|
|
|
|
50
|
OnTrack DM
|
E4
|
Speedstor
|
|
|
|
51
|
OnTrack DM6 Aux
|
EB
|
BeoS fs
|
|
|
|
52
|
CP / M
|
F1
|
SpeedStor
|
|
|
|
53
|
OnTrack DM6 Aux
|
F2
|
DOS 3.3 + secondary
|
|
|
|
partition
|
|
|
|
|
|
|
|
|
|
54
|
OnTrack DM6
|
F4
|
SpeedStor
|
|
|
|
55
|
EZ-Drive
|
FE
|
LAN step
|
|
|
|
56
|
Golden Bow
|
FF
|
BBT
|
|
|