BSD disklabel

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In BSD-derived computer operating systems (including NetBSD, OpenBSD, FreeBSD and DragonFly BSD) and in related operating systems such as SunOS, a disklabel is a record stored on a data storage device such as a hard disk that contains information about the location of the partitions on the disk. Disklabels were introduced in the 4.3BSD-Tahoe release.[1] Disklabels are usually edited using the disklabel utility. In later versions of FreeBSD, this was renamed as bsdlabel.[2]

Where disklabels are stored[edit]

Traditionally, the disklabel was the first sector of the disk. However, this system only works when the only operating systems that access the disk are Unix systems that comprehend disklabels. In the world of IBM PC compatibles, disks are usually partitioned using the PC BIOS's master boot record (MBR) Partition Table scheme instead, and the BSD partitioning scheme is nested within a single, primary, MBR partition (just as the "extended" partitioning scheme is nested within a single primary partition with extended boot records). Sometimes (particularly in FreeBSD), the primary MBR partitions are referred to as slices and the subdivisions of a primary MBR partition (for the nested BSD partitioning scheme) that are described by its disklabel are called partitions. The BSD disklabel is contained within the volume boot record of its primary MBR partition.

The MBR partition IDs for primary partitions that are subdivided using BSD disklabels are A5h (386BSD and FreeBSD), A6h (OpenBSD), A9h (NetBSD), and 6Ch (DragonFly BSD).[3]

This format has a similar goal as the extended partitions and logical partition system used by MS-DOS, Windows and Linux.

The same PC hard drive can have both BSD disklabel partitions and the MS-DOS type logical partitions in separate primary partitions. FreeBSD and other BSD operating systems can access both the BSD disklabel subdivided partition and the MS-DOS type Extended/Logical partitions.

The contents of disklabels[edit]

BSD disklabels traditionally contain 8 entries for describing partitions. These are, by convention, labeled alphabetically, 'a' through to 'h'. Some BSD variants have since increased this to 16 partitions, labeled 'a' through to 'p'.

Also by convention, partitions 'a', 'b', and 'c' have fixed meanings:

  • Partition 'a' is the "root" partition, the volume from which the operating system is bootstrapped. The boot code in the Volume Boot Record containing the disklabel is thus simplified, as it need only look in one fixed location to find the location of the boot volume;
  • Partition 'b' is the "swap" partition;
  • Partition 'c' overlaps all of the other partitions and describes the entire disk. Its start and length are fixed. On systems where the disklabel co-exists with another partitioning scheme (such as on PC hardware), partition 'c' may actually only extend to an area of disk allocated to the BSD operating system, and partition 'd' is used to cover the whole physical disk.

See also[edit]


  • "disklabel". OpenBSD manual pages, section 5.
  • "Using disklabel". OpenBSD FAQ.
  1. ^ "disklabel(5)". 4.4BSD Programmer's Manual. Archived from the original on 2013-12-24. Retrieved 2008-02-28.
  2. ^ "FreeBSD/i386 5.1-RELEASE Release Notes". Retrieved 9 May 2017.
  3. ^ DragonFly BSD commit 794d80a: Change legacy MBR partition type from 0xA5 to 0x6C

Further reading[edit]