Why can I only have four partitions?

Why is the limitation on the number of partitions set to 4?

Any reference would be useful.


Solution 1:

The limitation is 4 Primary partitions and comes from the structure of the Master Boot Record(MBR). However, you could have 3 primary partitions and 1 extended partition which can have any number of logical partitions within it.

EFI supports GUID partition tables, which do not have this limitation.

Solution 2:

It is not a Linux issue. Standard disc partitions (supported by BIOS) only allow 4 partitions. The standard formatting for discs is ancient.

Solution 3:

The four (primary) partition limitation is a result of a common convention used by both BIOS's and operating systems called the MBR for specifying a disk's partitions. The MBR convention, which was written in 1983, provides for only four primary partitions. The MBR is a data structure that resides in the first sector of each hard disk, and contains the disk partition locations, the number of the "active" partition to boot, and a small boot loader that can load the boot loader that is expected to be in the VBR at the begining of the boot partition.

The persistence of the MBR convention is due to the fact that any change requires changing both the BIOS and the operating system, and due to the fact that until 2010, when the first disks exceeding 2TB became commercially available, the convention was adequate for most of the market. Users who required more partitions used partitioning that was supported in the operating system only.

The UEFI replacement for BIOS supports the GUID format partition table or GPT, that does not have either the partition size or partition number limitations of the MBR format. The GPT is written to the second LBA sector, following the MBR. The GPT format is now the the de facto successor to the MBR.

Linux supports GUID partition tables since kernel version 2.6.9. If you wish to use it in order to get around the MBR 2TB/four-partition limitation, see this excellent explanation and HowTo on IBM developerworks.