Skip to content
Surf Wiki
Save to docs
general/bios

From Surf Wiki (app.surf) — the open knowledge base

BIOS parameter block

Data structure in the volume boot record


Summary

Data structure in the volume boot record

In computing, the BIOS parameter block, often shortened to BPB, is a data structure in the volume boot record (VBR) 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 (except for in DOS 1.x), 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. (A detailed discussion of the various FAT BPB versions and their entries can be found in the FAT article.) 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 (which describes FAT as for flexible/floppy and optical disk cartridges).

FAT12 / FAT16

DOS 2.0 BPB

Main article: DOS 2.0 BPB

Format of standard DOS 2.0 BPB for FAT12 (13 bytes):

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`WORDBytes per logical sector
`0x00D``0x02`BYTELogical sectors per cluster
`0x00E``0x03`WORDReserved logical sectors
`0x010``0x05`BYTENumber of FATs
`0x011``0x06`WORDRoot directory entries
`0x013``0x08`WORDTotal logical sectors
`0x015``0x0A`BYTEMedia descriptor
`0x016``0x0B`WORDLogical sectors per FAT

Not all versions of DOS 2.00 conform to this structure. IBM PC-DOS 2.00 has additional, undocumented fields in this space that seems to indicate the bootable drive and the sector from where to start reading. This does not appear in any official IBM documentation but a PC/XT system will not boot without correct values in these bytes.

{{anchor|DOS 2.11 BPB}}DOS 3.0 BPB

Main article: DOS 3.0 BPB

Format of standard DOS 3.0 BPB for FAT12 and FAT16 (19 bytes), already supported by some versions of MS-DOS 2.11:

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`13 BYTEsDOS 2.0 BPB
`0x018``0x0D`WORDPhysical sectors per track
`0x01A``0x0F`WORDNumber of heads
`0x01C``0x11`WORDHidden sectors (incompatible with DOS 3.31 BPB)

DOS 3.2 BPB

Main article: DOS 3.2 BPB

Format of standard DOS 3.2 BPB for FAT12 and FAT16 (21 bytes):

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`19 BYTEsDOS 3.0 BPB
`0x01E``0x13`WORDTotal sectors (incompatible with DOS 3.31 BPB)

DOS 3.31 BPB

Main article: DOS 3.31 BPB

Format of standard DOS 3.31 BPB for FAT12, FAT16 and FAT16B (25 bytes):

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`13 BYTEsDOS 2.0 BPB
`0x018``0x0D`WORDPhysical sectors per track (identical to DOS 3.0 BPB)
`0x01A``0x0F`WORDNumber of heads (identical to DOS 3.0 BPB)
`0x01C``0x11`DWORDHidden sectors (incompatible with DOS 3.0 BPB)
`0x020``0x15`DWORDLarge total logical sectors

DOS 3.4 EBPB

Main article: DOS 3.4 EBPB

Format of PC DOS 3.4 and OS/2 1.0-1.1 Extended BPB for FAT12, FAT16 and FAT16B (32 bytes):

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`25 BYTEsDOS 3.31 BPB
`0x024``0x19`BYTEPhysical drive number
`0x025``0x1A`BYTEFlags etc.
`0x026``0x1B`BYTEExtended boot signature (`0x28` aka "4.0") (similar to DOS 4.0 EBPB and NTFS EBPB)
`0x027``0x1C`DWORDVolume serial number

FAT12 / FAT16 / HPFS

DOS 4.0 EBPB

Main article: DOS 4.0 EBPB

Format of DOS 4.0 and OS/2 1.2 Extended BPB for FAT12, FAT16, FAT16B and HPFS (51 bytes):

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`25 BYTEsDOS 3.31 BPB
`0x024``0x19`BYTEPhysical drive number (identical to DOS 3.4 EBPB)
`0x025``0x1A`BYTEFlags etc. (identical to DOS 3.4 EBPB)
`0x026``0x1B`BYTEExtended boot signature (`0x29` aka "4.1") (similar to DOS 3.4 EBPB and NTFS EBPB)
`0x027``0x1C`DWORDVolume serial number (identical to DOS 3.4 EBPB)
`0x02B``0x20`11 BYTEsVolume label
`0x036``0x2B`8 BYTEsFile-system type

FAT32

DOS 7.1 EBPB

Main article: DOS 7.1 EBPB

Format of short DOS 7.1 Extended BIOS Parameter Block (60 bytes) for FAT32:

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`25 BYTEsDOS 3.31 BPB
`0x024``0x19`DWORDLogical sectors per FAT
`0x028``0x1D`WORDMirroring flags etc.
`0x02A``0x1F`WORDVersion
`0x02C``0x21`DWORDRoot directory cluster
`0x030``0x25`WORDLocation of FS Information Sector
`0x032``0x27`WORDLocation of backup sector(s)
`0x034``0x29`12 BYTEsReserved (Boot file name)
`0x040``0x35`BYTEPhysical drive number
`0x041``0x36`BYTEFlags etc.
`0x042``0x37`BYTEExtended boot signature (`0x28`)
`0x043``0x38`DWORDVolume serial number

Format of full DOS 7.1 Extended BIOS Parameter Block (79 bytes) for FAT32:

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`25 BYTEsDOS 3.31 BPB
`0x024``0x19`DWORDLogical sectors per FAT
`0x028``0x1D`WORDMirroring flags etc.
`0x02A``0x1F`WORDVersion
`0x02C``0x21`DWORDRoot directory cluster
`0x030``0x25`WORDLocation of FS Information Sector
`0x032``0x27`WORDLocation of backup sector(s)
`0x034``0x29`12 BYTEsReserved (Boot file name)
`0x040``0x35`BYTEPhysical drive number
`0x041``0x36`BYTEFlags etc.
`0x042``0x37`BYTEExtended boot signature (`0x29`)
`0x043``0x38`DWORDVolume serial number
`0x047``0x3C`11 BYTEsVolume label
`0x052``0x47`8 BYTEsFile-system type

{{anchor|NTFS EBPB}}NTFS

Main article: NTFS#Partition Boot Sector (PBS)

Format of Extended BPB for NTFS (73 bytes):

Sector offsetBPB offsetField lengthDescription
`0x00B``0x00`25 BYTEsDOS 3.31 BPB
`0x024``0x19`BYTEPhysical drive number (identical to DOS 3.4 EBPB)
`0x025``0x1A`BYTEFlags etc. (identical to DOS 3.4 EBPB)
`0x026``0x1B`BYTEExtended boot signature (`0x80` aka "8.0") (similar to DOS 3.4 EBPB and DOS 4.0 EBPB)
`0x027``0x1C`BYTEReserved
`0x028``0x1D`QWORDSectors in volume
`0x030``0x25`QWORDMFT first cluster number
`0x038``0x2D`QWORDMFT mirror first cluster number
`0x040``0x35`DWORDMFT record size
`0x044``0x39`DWORDIndex block size
`0x048``0x3D`QWORDVolume serial number
`0x050``0x45`DWORDChecksum

exFAT BPB

exFAT does not use a BPB in the classic sense. Nevertheless, the volume boot record in sector 0 is organized similarly to BPBs.

Sector offsetField length (bytes)Description
`0x000`3JumpBoot. Must be 0xEB, 0x76, 0x90.
`0x003`8Filesystem name. Must be .
`0x00B`53Blank (traditional BPB area). Must be all zero.

References

References

  1. Microsoft. "Microsoft Windows 2000 Server Operations Guide". [[Microsoft Press]].
  2. (2013-12-19). "Microsoft DOS V1.1 and V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM". [[Computer History Museum]], [[Microsoft]].
  3. "exFAT Filesystem".
Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about BIOS parameter block — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report