BSD disklabel

From Wikipedia, the free encyclopedia

In the BSD computer operating systems (including NetBSD, OpenBSD, FreeBSD and DragonFlyBSD) 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.

Contents

[edit] Where disklabels are stored

Traditionally, the disklabel was the first sector of the disk. But 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 with the 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). In BSD parlance, the primary MBR partitions are referred to as "disk 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 the primary MBR partition.

The MBR partition IDs for primary partitions that are subdivided using BSD disklabels are 0xA5 (386BSD and FreeBSD), 0xA6 (OpenBSD), and 0xA9 (NetBSD).

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

The same PC harddrive 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 BSD disklabels often are used to house UFS filesystems.

[edit] The contents of disklabels

BSD disklabels contain 16 entries for describing (BSD) partitions. These are, by convention, named with letters of the alphabet, '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 BSD-partitioned area of the disk. Its start and length are fixed. As such, BSD disklabels can, in practice, only describe 15 partitions.

Also, on some systems, partition 'd' covers the whole disk. It is only needed when this partition would be different from partition 'c'. For example, on disks where the disklabel is embedded within a MBR-level partition ("slice"). Some systems do not use partition 'd' for this at all and have other means of referring to the whole disk.

[edit] References

[edit] Further reading