BIOS parameter block
In computing, the BIOS parameter block, often shortened to BPB, is a data structure in the volume boot record describing the physical layout of a data storage volume. On partitioned devices, such as hard disks, the BPB describes the volume partition, whereas, on unpartitioned devices, such as floppy disks, it describes the entire medium. A basic BPB can appear and be used on any partition, including floppy disks where its presence is often necessary, however, certain filesystems also make use of it in describing basic filesystem structures. Filesystems making use of a BIOS parameter block include FAT12, FAT16, FAT32, HPFS, and NTFS. Due to different types of fields and the amount of data they contain, the length of the BPB is different for FAT16, FAT32, and NTFS boot sectors. Combined with the 11-byte data structure at the very start of volume boot records immediately preceding the BPB or EBPB, this is also called FDC descriptor or extended FDC descriptor in ECMA-107 or ISO/IEC 9293.
FAT12 / FAT16
DOS 2.0 BPB
Format of standard DOS 2.0 BPB for FAT12 :Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | WORD | Bytes per logical sector |
0x00D | 0x02 | BYTE | Logical sectors per cluster |
0x00E | 0x03 | WORD | Reserved logical sectors |
0x010 | 0x05 | BYTE | Number of FATs |
0x011 | 0x06 | WORD | Root directory entries |
0x013 | 0x08 | WORD | Total logical sectors |
0x015 | 0x0A | BYTE | Media descriptor |
0x016 | 0x0B | WORD | Logical sectors per FAT |
DOS 3.0 BPB
Format of standard DOS 3.0 BPB for FAT12 and FAT16, already supported by some versions of MS-DOS 2.11:Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | 13 BYTEs | DOS 2.0 BPB |
0x018 | 0x0D | WORD | Physical sectors per track |
0x01A | 0x0F | WORD | Number of heads |
0x01C | 0x11 | WORD | Hidden sectors |
DOS 3.2 BPB
Format of standard DOS 3.2 BPB for FAT12 and FAT16 :Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | 19 BYTEs | DOS 3.0 BPB |
0x01E | 0x13 | WORD | Total sectors |
DOS 3.31 BPB
Format of standard DOS 3.31 BPB for FAT12, FAT16 and FAT16B :Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | 13 BYTEs | DOS 2.0 BPB |
0x018 | 0x0D | WORD | Physical sectors per track |
0x01A | 0x0F | WORD | Number of heads |
0x01C | 0x11 | DWORD | Hidden sectors |
0x020 | 0x15 | DWORD | Large total logical sectors |
DOS 3.4 EBPB
Format of PC DOS 3.4 and OS/2 1.0-1.1 Extended BPB for FAT12, FAT16 and FAT16B :Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | 25 BYTEs | DOS 3.31 BPB |
0x024 | 0x19 | BYTE | Physical drive number |
0x025 | 0x1A | BYTE | Flags etc. |
0x026 | 0x1B | BYTE | Extended boot signature |
0x027 | 0x1C | DWORD | Volume serial number |
FAT12 / FAT16 / HPFS
DOS 4.0 EBPB
Format of DOS 4.0 and OS/2 1.2 Extended BPB for FAT12, FAT16, FAT16B and HPFS :Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | 25 BYTEs | DOS 3.31 BPB |
0x024 | 0x19 | BYTE | Physical drive number |
0x025 | 0x1A | BYTE | Flags etc. |
0x026 | 0x1B | BYTE | Extended boot signature |
0x027 | 0x1C | DWORD | Volume serial number |
0x02B | 0x20 | 11 BYTEs | Volume label |
0x036 | 0x2B | 8 BYTEs | File-system type |
FAT32
DOS 7.1 EBPB
Format of short DOS 7.1 Extended BIOS Parameter Block for FAT32:Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | 25 BYTEs | DOS 3.31 BPB |
0x024 | 0x19 | DWORD | Logical sectors per FAT |
0x028 | 0x1D | WORD | Mirroring flags etc. |
0x02A | 0x1F | WORD | Version |
0x02C | 0x21 | DWORD | Root directory cluster |
0x030 | 0x25 | WORD | Location of FS Information Sector |
0x032 | 0x27 | WORD | Location of backup sector |
0x034 | 0x29 | 12 BYTEs | Reserved |
0x040 | 0x35 | BYTE | Physical drive number |
0x041 | 0x36 | BYTE | Flags etc. |
0x042 | 0x37 | BYTE | Extended boot signature |
0x043 | 0x38 | DWORD | Volume serial number |
Format of full DOS 7.1 Extended BIOS Parameter Block for FAT32:
Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | 25 BYTEs | DOS 3.31 BPB |
0x024 | 0x19 | DWORD | Logical sectors per FAT |
0x028 | 0x1D | WORD | Mirroring flags etc. |
0x02A | 0x1F | WORD | Version |
0x02C | 0x21 | DWORD | Root directory cluster |
0x030 | 0x25 | WORD | Location of FS Information Sector |
0x032 | 0x27 | WORD | Location of backup sector |
0x034 | 0x29 | 12 BYTEs | Reserved |
0x040 | 0x35 | BYTE | Physical drive number |
0x041 | 0x36 | BYTE | Flags etc. |
0x042 | 0x37 | BYTE | Extended boot signature |
0x043 | 0x38 | DWORD | Volume serial number |
0x047 | 0x3C | 11 BYTEs | Volume label |
0x052 | 0x47 | 8 BYTEs | File-system type |
NTFS
Format of Extended BPB for NTFS :Sector offset | BPB offset | Field length | Description |
0x00B | 0x00 | 25 BYTEs | DOS 3.31 BPB |
0x024 | 0x19 | BYTE | Physical drive number |
0x025 | 0x1A | BYTE | Flags etc. |
0x026 | 0x1B | BYTE | Extended boot signature |
0x027 | 0x1C | BYTE | Reserved |
0x028 | 0x1D | QWORD | Sectors in volume |
0x030 | 0x25 | QWORD | MFT first cluster number |
0x038 | 0x2D | QWORD | MFT mirror first cluster number |
0x040 | 0x35 | DWORD | MFT record size |
0x044 | 0x39 | DWORD | Index block size |
0x048 | 0x3D | QWORD | Volume serial number |
0x050 | 0x45 | DWORD | Checksum |