Partition Table: A 64 byte table that resides within the master boot record on almost all PC hard drives. The table is located at relative address 1BE and consists of four 16 byte entries. These consist of a one byte Partition Type Identifier. A one byte Active Flag, 24 bits of Partition Start Cylinder-Head-Sector. 24 bits of Partition End Cylinder-Head-Sector. A 32 bit Partition start sector and a 32 bit Partition Length.

Partition types are not used by the boot process. The type is used by the Operating Systems when partitioning the disk and mounting partitions for use.

The active flag is set to either 80--Active or 00--Inactive. Only one of the four entries can be set active -- at least if one plans to boot with a standard MBR program. It is claimed that it might be possible to boot from a different drive by setting the active flag to a different drive -- e.g. 81 for D:. This is not a common practice.

The partition information is confusing and overlapping, but has turned out to be a fortunate choice. The partition start CHS can be input directly to Interrupt 13 to read the partition boot record -- which is fortunate since the conversion from absolute sector number to CHS requires knowing the total cylinders, heads and sectors per track -- information which is not readily available to the MBR boot program. Because the CHS start sector is only 24 bits, the partition boot record must reside in first 8.4GB of the disk. Many OSes require that the entire booted partition be in the first 8.4 GB, but that is not a boot restriction per se. By using the 32 bit specifications with a boot manager in the first 8.4GB, it is possible in principle to partition disks of as much as 538GB. The CX and DX register values for INT13 are taken directly from the 24 bit values in the Partition Table.

Many partition management tools including Microsoft FDISKs automatically allocate the last cylinder of the drive as a "diagnostic cylinder" for use by utilities in testing the drive. This space will not be reflected in either the partition table or the reported drive size. Some partitioning tools do not allocate a diagnostic cylinder in which case, the partition table may show slightly more space allocated than the reported size of the drive.

One further feature which is unrelated to booting per se is that partition type 5 specifies an "Extended Partition Record". This structure allocates one sector at the partition start address that contains an additional partition table entry an (optional) additional type 5 Extended Partition Record. This (very odd) arrangement allows as many additional partitions as desired to be allocated within the Extended Partition. By convention, the Extended Partition can not be bootable although the standard MBR boot program would probably load and execute the partition boot record boot record if it were marked as bootable. Again, by convention, Extended partitions contain only one partition definition.

The overlapping and somewhat redundant start, length, and end specifications in the partition table entries are supposed to be consistent, but that is not possible for partitions that extend beyond the first 8.4 GB of the disk. The end CHS are generally set to 1023, 63, 255 when that happens, but not all partition management programs -- especially older ones -- follow this convention. Some complain if it is not used -- making the use of multiple partition table mangement tools on large drives somewhat problemetic

As many as 255 different partition types are allowed for, and a large number have been defined. There is no central coordination of type usage. There are a few cases of conflicting type number usage. For example, Type 08 may be either an AIX, Commodore, or OS/2 partition. Only two disk types -- 05-Extended and 00-Unused or unknown -- are really guaranteed. A relatively comprehensive list of disk types is available in the documentation of several disk utilities including the Linux cfdisk program.

There are plans to replace the MBR with an incompatible 64bit structure called the GPT. A few 64 bit Intel Itanium machines use 64 bit Windows XP. 64 bit Windows uses the GPT instead of MBR.

Return To Index Copyright 1994-2002 by Donald Kenney.