Why can’t we have more than 4 primary partitions?

I was at SJBIT GLUG meet and all of  sudden my friend Vignesh asked a question. What is the difference between Primary and Logical Partitions? 🙂

Well, though at first it seems the question is quite simple, but its only when we start dig deep into it ..we get to know the complexity of it 😀 . Though there were many answers for the questions …but the one that I agree with was  .. ” The boot files ( bootmgr ,ntldr ..etc) are stored in Primary partition and not in logical  partition “. But that doesn’t mean that all primary partition will have boot files ..but the reveres of it is always true. 🙂 . Worth noting a point is, the BIOS can boot only from primary partitions .

One more interesting point that was mentioned in GLUG was.. why can’t we have more than 4 Primary partitions in a system ?Again, I was not able to find a firm answer but got some supporting facts that probably forces the above constraint.

The Master Boot Record (MBR, sector 0 of the disk) only holds descriptors for 4 partitions, called the primary partitions. Usually the BIOS can boot only from a primary partition. (Of course it can boot a boot loader that itself is able to access nonprimary partitions or other disks.)

Each partition table sector contains 4 partition descriptors. A partition descriptor may be of type 05 (DOS extended partition), 0f (W95 extended partition), 85 (Linux extended partition), or c5 (DRDOS/secured extended partition), in which case it points to another partition table sector.  As one of my colleague told , there could be a space constraint which actually leads to the limit of having just 4 primary partitions ..

One more answer that I found in LunuxQuestion forum is as follows

“PC standard as exists today has 64 bytes, 16 bytes per partition between the 447th to 510th bytes of the first sector of the boot disk, as the partition table. The 4 entries are known as the primary partitions.

One entry can be used as an extended partition for holding the boundary of the logical partitions inside.

Since the BIOS only reads the first sector, or the first 512 bytes, of the first bootable hard disk there is no possibility of creating more than 4 primary partitions from a hard disk. The first 446 byte is the MBR and the last 2 bytes are spare.

Logical partitions works like links in a chain with the entended partition denoting the begining and end links. The 1st logical partition carries the address for the 2nd logical partition and the 2nd caries the address of the 3rd and so on. The logical partitions cannot be broken and do not have a well-defined begining and end points like the primary/extended partitions.

Linux differs from DOS, Windows, FreeBSD, PCBSD and Solaris by being bootable from a logical partition.

NetBSD and OS2 are the other known exception although I never done it with the latter.”

Some Readings : http://www.win.tue.nl/~aeb/partitions/partition_types-2.html#ss2.1

http://www.linuxquestions.org/questions/linux-general-1/creating-more-than-4-primary-partitions-376698/

Infact a much more detailed answer could be found here as well http://www.linuxquestions.org/questions/linux-server-73/why-linux-allow-only-four-primary-partition-898740/ 🙂

 

Regards ,

Karthik

 

Advertisements

One thought on “Why can’t we have more than 4 primary partitions?

ನಿಮ್ಮದೊಂದು ಉತ್ತರ

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s