Hard Drive Partition Size Limits

- with IDE Drives -

Believe it or not, when you try to upgrade your hard drive to one of the new, wonderful, speedy drives that are 20 gigabytes in size or larger, you may hit a drive size limit, since many of you still have older, legacy PC's.

This topic is very complex, and the limits vary all over the place, depending on the PC, the drive, the BIOS, and many other factors.  (see also my "Hard Drive Installation" page).  Fortunately, most modern PC's now recognize these larger drives, except for the monster drives (100 GB and up), and those drives come with "overlay" software that works fine. 

Your new drive will come with "low-level formatting" already in place.  The original bare drive has a magnetic surface with no information on it at all.  The last step that the manufacturer does before shipping is to apply a low-level format, then you apply a high-level format, and then finally partition the drive using FDISK or the software that came with the drive.

 

Low-Level Format  -  lays down tracks (cylinders) and breaks them up into 512-byte, physical sectors

High-Level Format  -  when you receive the drive, you will need to format it - which in PC lingo, format = "High-Level format".  The high level format lays down "logical sectors", which can be 512, 4096 (4kB), 32 kB, etc.  -  depending on the  /z:  option that you use when you format the drive.  If you do not specify, the format will select 4 kB if possible  (larger drives, if formatted with FAT32 will need larger cluster sizes than 4 kB because it would create so many clusters that FAT table cannot address them all  -  the NTFS table is virtually limitless and does not have this limitation).  For a list of allowable cluster sizes, which depends on the size of the partition - see the PartitionSize-vs-ClusterSize page.

The Format command (command prompt) :

format x: /z:64
where x= your hard drive letter, this will format 32k clusters under fat 32.

for other sizes of clusters :
FORMAT x: /Z:n where n is the number of 512 byte sectors in a cluster;
    > n must be a number 2^x, so: 1, 2, 4, 8, 16, 32, 64, ...

Example:
format c: /z:32 (for 32 - 512 byte sectors per cluster = 16 bytes per cluster)
format c: /z:16 (for 16 - 512 byte sectors per cluster = 8k bytes per cluster)
etc.

Fdisk - this is also a command-prompt utility that is used to partition your physical hard drive into logical drives (C, D, E, ....).  Formatting will lay down the tracks and sectors.  The sectors will all be empty - but format lays down the start and finish points of each sector.  The image below displays what partitioning and formatting does to a drive (there are many more tracks than shown, as well as multiple platters vs the one shown).  I am using C and D drive, even though in the examples on this page, we are adding a second drive and using the letters E and F :

Now - back to the partition size limits  .  .  .  your computer's Basic Input/Output System (BIOS) or your operating system may not allow you to access the full size of your drive. You may even find that your system will no longer boot and you will not even get an error message. Most hard drive manufacturers provide installation software to help overcome these problems. However, in PCs with the Windows operating system, drives using such software may run at slower than their maximum speed. In order to understand how to determine whether your PC may have such a problem and how to overcome it, we need to consider the source of these problems (don't let the large numbers scare you off.)

IDE (Integrated Drive Electronics, also referred to as ATA) hard drives identify themselves to the system BIOS by the number of cylinders, heads and sectors per track. This information is then stored in the CMOS. Sectors are always 512 bytes in size !!!  Therefore, the capacity of a drive can be determined by multiplying the number of cylinders times the number of sectors times 512. The BIOS interface allows for a maximum of 1024 cylinders, 255 heads and 63 sectors. This calculates out to 504 megabytes. This is also referred to as 528 megabytes by drive manufacturers that consider a megabyte to be 1,000,000 bytes instead of the programming standard of 1,048,576 bytes. Consequently, the true capacity of the drive is less than the advertised value.

IDE drives larger than 504MB must have more than 1024 cylinders. In order to overcome this limitation in the BIOS, a system called Logical Block Addressing (LBA) was instituted. This is also referred to as the INT13h extensions. This system translates the cylinder, head and sector (CHS) information into a 28-bit logical block address. This address is used to read/write data to the hard drive. The LBA system was first applied to computer systems with BIOS dates after July 1994. However, this did not solve the whole problem. Some BIOS manufacturers set cylinder limitations in the BIOS which limited drive size to just over 2 gigabytes. This matched the Windows 95 16-bit file allocation table (FAT 16) limit of 2 gigabytes per partition. With the advent of FAT32, the BIOS limit was raised to 8.4 gigabytes. Further extensions of the INT13h interface allowed the BIOS limit to be increased to 32 gigabytes.

In general, computer systems with a BIOS dated 1998 or later can work with drives up to 32 gigabytes (GB) in size. The 32GB barrier is due to the inability of the BIOS to address an LBA that is larger than 66,060,287. Only in the most recent computer systems has the BIOS been upgraded to work with drives larger than 32GB. In addition, in some computers, a 64GB barrier is still to be overcome. So, the primary limit to the size of the hard drive your computer can use is the LBA limit of your system's BIOS.

The other source of drive size limits has to do with the operating system. Windows 95-A or the first version of Win95 could support an 8.4GB hard drive. However, because of the size limitations of the FAT16, you had to partition the drive in 2GB partitions. That meant five partitions on an 8.4GB drive. Microsoft does say that this version of Win95 will support drives of up to 32GB, providing the partition size is no greater than 2GB! The limit of the FAT16 system is due to the maximum number of clusters that can be addressed is 65,525 (2 raised to the 16th power or 216). Multiplying this number times the maximum cluster size (32,768 bytes) gives the partition size limit of 2GB.

Windows 95B introduced the FAT32 system. In theory, this new file allocation table system can address a hard drive that is 2 terabytes (2,199,023,255,552) in size. The FAT32 table does not scale well in that as its size increases, it takes more time for Windows to find information in it. It also takes more time to calculate free space at boot-up. The maximum size of the FAT32 table is about 128 megabytes. The maximum size of any one file on a FAT32 drive is 4 gigabytes. Win98, WinME and Win2000 all support the FAT32 file system.

So what this seems to boil down to is that you need to have the most current BIOS in your system and an operating system that supports the large drive you want to install. If your computer has an older BIOS (before 1998) then you need to see if a more current BIOS is available from the computer or motherboard manufacturer. Motherboards built in the past few years generally have a flash BIOS that can be upgraded. If you cannot upgrade the BIOS, then the alternative is a third-party software solution or an IDE controller board.

All of the major hard drive manufacturers provide utility software that can accomplish the necessary LBA translations for very large hard drives. However, not all of these software solutions work with the Windows protected mode driver (ESDI_506.pdr). In some cases, the software drivers work only in real mode. This will reduce the speed of data transfer to and from the hard drive. You should ensure that you are using the latest available version of the third party software so that it will be fully compatible with the Windows protected mode drivers. Just because you just bought the drive doesn't mean that newest version of the software was included. You will need to check the manufacturer's Website for the latest version information. This utility software includes "Maxblast" from Maxtor, "Disk Manager" from Ontrack, and "Data LifeGuard" from Western Digital. There may be others, but these are the ones I am most familiar with. The latest versions of these utilities work very well in checking your systems BIOS to determine if it will support the new drive you are installing. They will also assist you in partitioning and formatting the drive.

However, even utility software cannot prevent the system from locking up if the BIOS cannot identify the parameters of your drive. In that case, you may need to consider a hardware solution by either reducing the size of the drive you want to install or purchasing an IDE controller card. The advantages of purchasing a controller card are that it has its own BIOS, which in the newest PCI cards, will work with the large hard drives. This is especially true of the drives that are larger than 30GB in size. In addition, these add-on cards increase the number of IDE devices that can be installed in your computer from 4 to 8. Many people have added ZIP drives and CD writers to computers that already had a CD-ROM and a hard drive installed. This uses up the four IDE channels that are built into the motherboard. By installing another IDE controller card you can now add up to four additional hard drives to your system. Just be certain you have an available PCI slot before you decide to buy a controller card. You will note that all this discussion has been about IDE drives. The interesting part of this, to me anyway, is that this does not apply to SCSI drives. The BIOS on SCSI controller cards has allowed for the geometry translation of very large drives since about 1994.

As you can see, adding a new hard drive is not as simple a proposition as the ads would lead you to believe. However, with proper preparation, adding a larger drive will not turn out to be another frustrating computer experience. A little planning and knowledge will save you a lot of effort during the installation process.