Image of Linux Kernel Development (3rd Edition)
Image of RHCE Red Hat Certified Engineer Linux Study Guide (Exam RH302) (Certification Press)
Image of Operating System Concepts
Image of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)

GPT BIOS Boot Partition

Now that Fedora 16 (Verne) is in beta, many early adapters are encountering GRUB2, GPT and BIOS Boot partitions for the first time.

The concept behind a BIOS Boot partition is not something particularly new. On BIOS-based computers, boot loaders images are larger than can be fitted on a single disk block or two. To overcome this inherent limitation, boot loaders are often split into a number of stages. For instance, GRUB Legacy has Stage1 code that lives in bytes 0 to 445 of the MBR, i.e. LBA0 (Logical Block Address), of a disk, and other code that lives in what is known as the post-MBR gap. The post-MBR gap is the 63 contiguous sectors (more precisely, one track) immediately following LBA0. This comes from the early days of DOS where the default starting offset for the first partition on a hard disk drive was sector 0x3F (63). Where did 63 sectors come from? Well in the early days of PC hard disks, disks typically had 63 sectors per track. 63 sectors translates to 31.5 KiB.

Using a post-MBR gap was never a good idea because there is no agreement about who or what could use these sectors. GRUB Legacy simply assumed the sectors belonged to it. Over the years there have been a number of other users of some of the sectors in this gap. It is unmanaged space, and has all the potential problems of unmanaged space. There are also partitioning systems out there that do not reserve any space after the MBR and some that reserve more. For example, Microsoft Vista and later use a 1-MiB alignment boundary instead of the traditional 63 sectors.

Along came the GPT specification (actually GPT is part of UEFI specification) and it did not, for whatever reason, provide for a post-MBR gap – so a couple of the parted developers came up with the concept of reserving a GPT partition to contain the code that previously was placed in the post-MBR gap.

If you want to know the full history of how the BIOS Boot partition came into being, read the parted-devel mailing list for December 2007 and the first few months of 2008. Also check out this Debian bug report which was opened by Robert Millan in June 2008. By the way, Millan also wrote the initial Wikipedia entry for BIOS Boot partition in February 2008!

User problems with hardware support for accelerated graphics and the useability of the GNOME shell (remember the Suspend v Power Off menu option controversy?) are what people remember about the Fedora 15 release. I suspect that GRUB2, GPT and especially BIOS Boot partition issues will similarly define Fedora 16.

Go to here if you want to read more about Fedora 16 and the BIOS Boot partition.

Comments are closed.