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. [1] (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).
Format of standard DOS 2.0 BPB for FAT12 (13 bytes):
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 |
Format of standard DOS 3.0 BPB for FAT12 and FAT16 (19 bytes), already supported by some versions of MS-DOS 2.11: [2]
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 (incompatible with DOS 3.31 BPB) |
Format of standard DOS 3.2 BPB for FAT12 and FAT16 (21 bytes):
Sector offset | BPB offset | Field length | Description |
---|---|---|---|
0x00B | 0x00 | 19 BYTEs | DOS 3.0 BPB |
0x01E | 0x13 | WORD | Total sectors (incompatible with DOS 3.31 BPB) |
Format of standard DOS 3.31 BPB for FAT12, FAT16 and FAT16B (25 bytes):
Sector offset | BPB offset | Field length | Description |
---|---|---|---|
0x00B | 0x00 | 13 BYTEs | DOS 2.0 BPB |
0x018 | 0x0D | WORD | Physical sectors per track (identical to DOS 3.0 BPB) |
0x01A | 0x0F | WORD | Number of heads (identical to DOS 3.0 BPB) |
0x01C | 0x11 | DWORD | Hidden sectors (incompatible with DOS 3.0 BPB) |
0x020 | 0x15 | DWORD | Large total logical sectors |
Format of PC DOS 3.4 and OS/2 1.0-1.1 Extended BPB for FAT12, FAT16 and FAT16B (32 bytes):
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 (0x28 aka "4.0") (similar to DOS 4.0 EBPB and NTFS EBPB) |
0x027 | 0x1C | DWORD | Volume serial number |
Format of DOS 4.0 and OS/2 1.2 Extended BPB for FAT12, FAT16, FAT16B and HPFS (51 bytes):
Sector offset | BPB offset | Field length | Description |
---|---|---|---|
0x00B | 0x00 | 25 BYTEs | DOS 3.31 BPB |
0x024 | 0x19 | BYTE | Physical drive number (identical to DOS 3.4 EBPB) |
0x025 | 0x1A | BYTE | Flags etc. (identical to DOS 3.4 EBPB) |
0x026 | 0x1B | BYTE | Extended boot signature (0x29 aka "4.1") (similar to DOS 3.4 EBPB and NTFS EBPB) |
0x027 | 0x1C | DWORD | Volume serial number (identical to DOS 3.4 EBPB) |
0x02B | 0x20 | 11 BYTEs | Volume label |
0x036 | 0x2B | 8 BYTEs | File-system type |
Format of short DOS 7.1 Extended BIOS Parameter Block (60 bytes) 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(s) |
0x034 | 0x29 | 12 BYTEs | Reserved (Boot file name) |
0x040 | 0x35 | BYTE | Physical drive number |
0x041 | 0x36 | BYTE | Flags etc. |
0x042 | 0x37 | BYTE | Extended boot signature (0x28 ) |
0x043 | 0x38 | DWORD | Volume serial number |
Format of full DOS 7.1 Extended BIOS Parameter Block (79 bytes) 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(s) |
0x034 | 0x29 | 12 BYTEs | Reserved (Boot file name) |
0x040 | 0x35 | BYTE | Physical drive number |
0x041 | 0x36 | BYTE | Flags etc. |
0x042 | 0x37 | BYTE | Extended boot signature (0x29 ) |
0x043 | 0x38 | DWORD | Volume serial number |
0x047 | 0x3C | 11 BYTEs | Volume label |
0x052 | 0x47 | 8 BYTEs | File-system type |
Format of Extended BPB for NTFS (73 bytes):
Sector offset | BPB offset | Field length | Description |
---|---|---|---|
0x00B | 0x00 | 25 BYTEs | DOS 3.31 BPB |
0x024 | 0x19 | BYTE | Physical drive number (identical to DOS 3.4 EBPB) |
0x025 | 0x1A | BYTE | Flags etc. (identical to DOS 3.4 EBPB) |
0x026 | 0x1B | BYTE | Extended boot signature (0x80 aka "8.0") (similar to DOS 3.4 EBPB and DOS 4.0 EBPB) |
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 |
exFAT does not use a BPB in the classic sense. Nevertheless, the volume boot record in sector 0 is organized similarly to BPBs. [3]
Sector offset | Field length (bytes) | Description |
---|---|---|
0x000 | 3 | JumpBoot. Must be 0xEB, 0x76, 0x90. |
0x003 | 8 | Filesystem name. Must be "EXFAT ". |
0x00B | 53 | Blank (traditional BPB area). Must be all zero. |
New Technology File System (NTFS) is a proprietary journaling file system developed by Microsoft. Starting with Windows NT 3.1, it is the default file system of the Windows NT family. It superseded File Allocation Table (FAT) as the preferred filesystem on Windows and is supported in Linux and BSD as well. NTFS reading and writing support is provided using a free and open-source kernel implementation known as NTFS3 in Linux and the NTFS-3G driver in BSD. By using the convert
command, Windows can convert FAT32/16/12 into NTFS without the need to rewrite all files. NTFS uses several files typically hidden from the user to store metadata about other files stored on the drive which can help improve speed and performance when reading data. Unlike FAT and High Performance File System (HPFS), NTFS supports access control lists (ACLs), filesystem encryption, transparent compression, sparse files and file system journaling. NTFS also supports shadow copy to allow backups of a system while it is running, but the functionality of the shadow copies varies between different versions of Windows.
File Allocation Table (FAT) is a file system developed for personal computers and was the default filesystem for MS-DOS and Windows 9x operating systems. Originally developed in 1977 for use on floppy disks, it was adapted for use on hard disks and other devices. The increase in disk drives capacity required three major variants: FAT12, FAT16 and FAT32. FAT was replaced with NTFS as the default file system on Microsoft operating systems starting with Windows XP. Nevertheless, FAT continues to be used on flash and other solid-state memory cards and modules, many portable and embedded devices because of its compatibility and ease of implementation.
Disk partitioning or disk slicing is the creation of one or more regions on secondary storage, so that each region can be managed separately. These regions are called partitions. It is typically the first step of preparing a newly installed disk, before any file system is created. The disk stores the information about the partitions' locations and sizes in an area known as the partition table that the operating system reads before any other part of the disk. Each partition then appears to the operating system as a distinct "logical" disk that uses part of the actual disk. System administrators use a program called a partition editor to create, resize, delete, and manipulate the partitions. Partitioning allows the use of different filesystems to be installed for different kinds of files. Separating user data from system data can prevent the system partition from becoming full and rendering the system unusable. Partitioning can also make backing up easier. A disadvantage is that it can be difficult to properly size partitions, resulting in having one partition with too much free space and another nearly totally allocated.
Linux has several filesystem drivers for the File Allocation Table (FAT) filesystem format. These are commonly known by the names used in the mount
command to invoke particular drivers in the kernel: msdos, vfat, and umsdos.
HPFS is a file system created specifically for the OS/2 operating system to improve upon the limitations of the FAT file system. It was written by Gordon Letwin and others at Microsoft and added to OS/2 version 1.2, at that time still a joint undertaking of Microsoft and IBM, and released in 1988.
86-DOS is a discontinued operating system developed and marketed by Seattle Computer Products (SCP) for its Intel 8086-based computer kit.
fdisk is a command-line utility for disk partitioning. It has been part of DOS, DR FlexOS, IBM OS/2, and early versions of Microsoft Windows, as well as certain ports of FreeBSD, NetBSD, OpenBSD, DragonFly BSD and macOS for compatibility reasons. Windows 2000 and its successors have replaced fdisk
with a more advanced tool called diskpart
.
PartitionMagic is a utility software program for hard disk drive partitioning originally made by PowerQuest, but subsequently owned by Symantec. As of December 8, 2009, the Symantec website stated that they no longer offer PartitionMagic.
In computing, a file system or filesystem is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one large body of data with no way to tell where one piece of data stopped and the next began, or where any piece of data was located when it was time to retrieve it. By separating the data into pieces and giving each piece a name, the data are easily isolated and identified. Taking its name from the way a paper-based data management system is named, each group of data is called a "file". The structure and logic rules used to manage the groups of data and their names is called a "file system."
This article details versions of MS-DOS, IBM PC DOS, and at least partially compatible disk operating systems. It does not include the many other operating systems called "DOS" which are unrelated to IBM PC compatibles.
The following tables compare general and technical information for a number of file systems.
A volume boot record (VBR) is a type of boot sector introduced by the IBM Personal Computer. It may be found on a partitioned data storage device, such as a hard disk, or an unpartitioned device, such as a floppy disk, and contains machine code for bootstrapping programs stored in other parts of the device. On non-partitioned storage devices, it is the first sector of the device. On partitioned devices, it is the first sector of an individual partition on the device, with the first sector of the entire device being a Master Boot Record (MBR) containing the partition table.
In Microsoft operating systems, when using basic disk partitioned with GUID Partition Table (GPT) layout, a basic data partition (BDP) is any partition identified with Globally Unique Identifier (GUID) of EBD0A0A2-B9E5-4433-87C0-68B6B72699C7.
exFAT is a file system introduced by Microsoft in 2006 and optimized for flash memory such as USB flash drives and SD cards. exFAT was proprietary until 28 August 2019, when Microsoft published its specification. Microsoft owns patents on several elements of its design.
The partition type in a partition's entry in the partition table inside a master boot record (MBR) is a byte value intended to specify the file system the partition contains or to flag special access methods used to access these partitions.
In computing, label
is a command included with some operating systems. It is used to create, change, or delete a volume label on a logical drive, such as a hard disk partition or a floppy disk. Used without parameters, label
changes the current volume label or deletes the existing label.
In computing, format
, a command-line utility that carries out disk formatting. It is a component of various operating systems, including 86-DOS, MS-DOS, IBM PC DOS and OS/2, Microsoft Windows and ReactOS.
DOS is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible systems from other manufacturers include DR-DOS (1988), ROM-DOS (1989), PTS-DOS (1993), and FreeDOS (1998). MS-DOS dominated the IBM PC compatible market between 1981 and 1995.
Partition-Saving is a disk imaging utility for Linux, Windows and DOS environments that can save disk partitions in one of the several supported disk image formats.
The FAT file system is a file system used on MS-DOS and Windows 9x family of operating systems. It continues to be used on mobile devices and embedded systems, and thus is a well suited file system for data exchange between computers and devices of almost any type and age from 1981 through the present.