Partition Limits. The partition table describes the location of partitions both in 1-dimensional ('LBA') and in 3-dimensional (CHS) form. The former is easy enough, but for the latter one needs to know the disk geometry. Note that these days this geometry is entirely fake, and different systems use different faked geometries for the same disk, giving lots of problems. (For example, a modern disk may have 2 or 4 heads, but will probably report 15 or 16 heads to the BIOS, which in turn may report 255 heads to DOS or Windows.) ATA Specification (for IDE disks) - the 137 GB limit At most 65536 cylinders (numbered 0-65535), 16 heads (numbered 0-15), 255 sectors/track (numbered 1-255), for a maximum total capacity of 267386880 sectors (of 512 bytes each), that is, 136902082560 bytes (137 GB). BIOS Int 13 - the 8.4 GB limit At most 1024 cylinders (numbered 0-1023), 256 heads (numbered 0-255), 63 sectors/track (numbered 1-63) for a maximum total capacity of 8455716864 bytes (8.4 GB). This is a serious limitation today. It means that DOS cannot use present day large disks. The DOS 528 MB limit If the same values for c,h,s are used for the BIOS Int 13 call and for the IDE disk I/O, then both limitations combine, and one can use at most 1024 cylinders, 16 heads, 63 sectors/track, for a maximum total capacity of 528482304 bytes (528MB), the infamous 504 MB limit (if one takes M=2^20). This was already a problem many years ago, and all kinds of software, firmware and hardware solutions were invented. On the software side, there are Disk Managers, that circumvent the BIOS and go directly to the hardware. On the firmware side there are translating BIOSes, that use one geometry when talking to the disk, and another one when talking to the user program. (At best, this again allows access to 8.4 GB.) On the hardware side, there is LBA disk access, that no longer uses (c,h,s). The 2.1 GB limit Some older BIOSes only allocate 12 bits for the field in CMOS RAM that gives the number of cylinders. Consequently, this number can be at most 4095, and only 4095*16*63*512=2113413120 bytes are accessible. See over2gb.htm. The 3.2 GB limit There was a bug in the Phoenix 4.03 and 4.04 BIOS firmware that would cause the system to lock up in the CMOS setup for drives with a capacity over 3277 MB. See over3gb.htm. The 4.2 GB limit Simple BIOS translation (ECHS=Extended CHS, sometimes called 'Large disk support' or just 'Large') works by repeatedly doubling the number of heads and halving the number of cylinders shown to DOS, until the number of cylinders is at most 1024. Now DOS and Windows 95 cannot handle 256 heads or more, and in the common case that the disk reports 16 heads, this means that this simple mechanism only works up to 8192*16*63*512=4227858432 bytes (with a fake geometry with 1024 cylinders, 128 heads, 63 sectors/track). Note that ECHS does not change the number of sectors per track, so if that is not 63, the limit will be lower. See over4gb.htm. The 7.9 GB limit Slightly smarter BIOSes avoid the previous problem by first adjusting the number of heads to 15 ('revised ECHS'), so that a fake geometry with 240 heads can be obtained, good for 1024*240*63*512=7927234560 bytes. The 8.4 GB limit Finally, if the BIOS does all it can to make this translation a success, and uses 255 heads and 63 sectors/track ('assisted LBA' or just 'LBA') it may reach 1024*255*63*512=8422686720 bytes, slightly less than the earlier 8.4 GB limit because the geometries with 256 heads must be avoided. (This translation will use for the number of heads the first value H in the sequence 16, 32, 64, 128, 255 for which the total disk capacity fits in 1024*H*63*512, and then computes the number of cylinders C as total capacity divided by (H*63*512).) The 33.8 GB limit Large disks report 16 heads, 63 sectors/track and 16383 cylinders. Many BIOSes compute an actual number of cylinders by dividing the total capacity by 16*63. For disks larger than 33.8 GB this leads to a number of cylinders larger than 65535. Now the BIOS crashes or hangs. The solution is to upgrade the BIOS. If that is impossible, it sometimes helps to take the disk out of the BIOS, but that won't work if one has to boot from the disk, and may also fail because the BIOS already hangs during initial probing. Usually one can use a jumper to make the disk appear smaller. Also many operating systems have problems - only the most recent versions work with these disks. The 137 GB limit As already noted, the old ATA specification does not allow access to all of a disk that is larger than 137 GB. Indeed, it uses only 28 bits to specify a sector number. However, ATA-6 defines an extension with 48-bit sector number. The first disks needing the extension were Maxtor 160 GB disks, that came to market in Fall 2001. Hard drives over 8.4 GB are supposed to report their geometry as 16383/16/63. This in effect means that the 'geometry' is obsolete, and the total disk size can no longer be computed from the geometry. (http://www.win.tue.nl/~aeb/partitions/partition_types-2.html)