Information about primary partitions and an extended partition is contained in the Partition Table. This is a 64-byte data structure located in the same sector as the Master Boot Record (cylinder 0, head 0, sector 1).
The Partition Table conforms to a standard layout that is independent of the operating system. Each Partition Table entry is 16 bytes long, making a maximum of four entries available. Each entry starts at a predetermined offset from the beginning of the sector, as follows:
- Partition 1 0x01BE (446)
- Partition 2 0x01CE (462)
- Partition 3 0x01DE (478)
- Partition 4 0x01EE (494)
The last two bytes in the sector are a signature word for the sector and are always 0x55AA.
The next figure is a printout of the Partition Table for the disk shown in a figure earlier in this chapter. When there are fewer than four partitions, the remaining fields are all zeros.
- 80 01 ..
- 000001C0: 01 00 06 0F 7F 96 3F 00 - 00 00 51 42 06 00 00 00 .....?...QB....
- 000001D0: 41 97 07 0F FF 2C 90 42 - 06 00 A0 3E 06 00 00 00 A....,.B...>....
- 000001E0: C1 2D 05 0F FF 92 30 81 - 0C 00 A0 91 01 00 00 00 .-....0.........
- 000001F0: C1 93 01 0F FF A6 D0 12 - 0E 00 C0 4E 00 00 55 AA ...........N..U.
The following table describes each entry in the Partition Table. The sample values correspond to the information for partition
Partition Table Fields
|Byte Offset||Field Length||Sample Value||Meaning|
|00||BYTE||0x80||Boot Indicator. Indicates whether the partition is the system partition. Legal values are: 00 = Do not use for booting. 80 = System partition.|
|02||6 bits||0x01||Starting Sector. Only bits 0-5 are used. Bits 6-7 are the upper two bits for the Starting Cylinder field.|
|03||10 bits||0x00||Starting Cylinder. This field contains the lower 8 bits of the cylinder value. Starting cylinder is thus a 10-bit number, with a maximum value of 1023.|
|04||BYTE||0x06||System ID. This byte defines the volume type. In Windows NT, it also indicates that a partition is part of a volume that requires the use of the HKEY_LOCAL_MACHINE\SYSTEM\DISK Registry subkey.|
|06||6 bits||0x3F||Ending Sector. Only bits 0-5 are used. Bits 6-7 are the upper two bits for the Ending Cylinder field.|
|07||10 bits||0x196||Ending Cylinder. This field contains the lower 8 bits of the cylinder value. Ending cylinder is thus a 10-bit number, with a maximum value of 1023.|
|08||DWORD||3F 00 00 00||Relative Sector.|
|12||DWORD||51 42 06 00||Total Sectors.|
The remainder of this section describes the uses of these fields. Definitions of the fields in the Partition Table is the same for primary partitions, extended partitions, and logical drives in extended partitions.
Boot Indicator Field
The Boot Indicator field indicates whether the volume is the system partition. On x-86-based computers, only one primary partition on the disk should have this field set.
This field is used only on x86-based computers. On RISC-based computers, the NVRAM contains the information for finding the files to load.
On x86-based computers, it is possible to have different operating systems and different file systems on different volumes. For example, a computer could have MS-DOS on the first primary partition and Windows 95, UNIX, OS/2, or Windows NT on the second.
You can control which primary partition is used to start the computer (such as using FDISK to mark an active partition) by setting the Boot Indicator field for that partition in the Partition Table.