BIOS hard drive limits

Last Updated on March 21, 2021 by Dave Farquhar

Back in the old days, we had to worry about BIOS hard drive limits. I couldn’t put a 40 GB hard drive in my 486 because it couldn’t recognize a drive of that size. That wasn’t a big problem in the 90s since I couldn’t get one of those in the 90s, but now that we’re starting to dust off those old systems and put modern storage solutions in them, sometimes we have to think about those limits again.

Generally speaking, older systems tend to be limited to hard drive sizes of 528 MB, 2.1 GB, 4.2 GB, 8.4 GB, 33.8 GB, or 137 GB. Sometimes you can configure the system to ignore the extra size, or you can use another workaround.

Entering hard drive size in the BIOS

BIOS hard drive limits
In 1999, this 30 GB IDE hard drive was about as big as most computers of the time could handle due to BIOS hard drive limits. But compared to the pre-1998 limit of 8 GB, this drive was enormous.

BIOS limitations can limit your options when it comes to using an SD card or compact flash card as a hard drive replacement. But there are workarounds.

Older systems defined around 40 drive types, mostly so the system could talk to pre-IDE hard drives. You had to pick the type that most closely matched your drive without exceeding any of the settings, or enter a custom drive type. Drives sometimes had the settings printed on a sticker. But many PC technicians carried around a little blue book with the settings for virtually every drive in existence called the Pocket PC Reference. If you want to complete a 286 or 386-era power-user setup, pick up a copy of this book and keep it next to the computer.

Many 486 systems and even some later 386 systems can autodetect the drive. But if the drive is too big and it confuses the system, you can fall back on entering in a custom drive type to try to get the system to ignore the extra capacity. You could just buy a 512MB SD card and not worry about it, but you might object to paying $15 for an obsolete card when you can buy a small-by-modern-standards card for $10 and that newer card will perform better.

The traditional maximum BIOS settings

To take your system to the limit, you enter a custom drive type and just max out all three values for cylinders, heads, and sectors per track. Here are some common maximum values for each, the maximum capacities associated with those numbers, and the vintage of computers that tended to have those limits.

CapacityCylindersHeadsSectorsVintage
504 MB10241663Mid-1994 and earlier
2.1 GB40951663Pre-1996
4.2 GB81921663Pre-1996
7.38 GB102424063Pre-1998
7.84 GB102425563Pre-1998
7.88 GB102425663Pre-1998
31.5 GB655361663Mid-1999 and earlier
127.5 GB6553616255Pre-2002

These days, 128 GB is a small drive. But take it from me, as someone who was there: These capacities seemed enormous when they were new.

If you want to do the math yourself, the drive’s size in bytes is always the product of 512 x cylinder count x sector count x head count. Figure out the maximum number of heads and sectors your BIOS supports, then work backwards to figure out how many cylinders to enter.

CHS values for certain common small-capacity memory cards

The numbers I gave above don’t help you a lot if you have a 1 GB, 2 GB, or 4 GB card, as none of these match the BIOS limits exactly. Hard drive capacities never quite matched nice, even binary values.

Here are some values you can use if you have cards of these capacities:

CapacityCylindersHeadsSectors
1 GB20471663
2 GB40941663
4 GB81911663

You’ll waste a little bit of capacity in each case, but it’s a lot better than settling for 504 MB. To use an 8 GB card in a system from the 1996-98 timeframe, use the settings for one of the 7-ish GB capacities from the previous section.

Drive overlays

You may see reference to people using drive overlays to overcome BIOS limitations. Drive overlays are small shims that load before the operating system and sit between the operating system and the BIOS, allowing you to use a larger-capacity drive. It’s a total hack, but generally worked well enough. Vogons has a collection of drive overlays. Most overlays only functioned with the brand of drive they came with, but some of Maxtor’s overlays omitted that restriction.

To use a drive overlay, you set your drive type in your system BIOS to type 0 or 1, which is generally a 10 megabyte drive. Then you boot off the overlay disk. The overlay installs itself, usually to the drive’s MBR, and then your system can see a larger drive than the BIOS allows on its own.

Drive overlays limit what operating system you can run, but in a DOS machine, it may be easier to just load a drive overlay and forget about it, rather than try to figure out what your BIOS limitations are and how to work around them.

One more thing about BIOS hard drive limits and memory cards

When you set up a memory card in a retro system, expect to have to repartition and reformat it to make it usable. It’s best to partition and format it in the destination system because your Windows 10 box will want to align the partitions, which renders DOS incompatible. Once you’ve repartitioned and reformatted the card, you can then install DOS and reboot.

Once DOS is finished installing, if the system won’t boot off the card, run the command fdisk /mbr to make it bootable. Don’t issue that command unless the system fails to boot, though, as that command usually will overwrite your drive overlay if you’re using one.

And once you have storage on the machine, I recommend getting networking up and running on it. It makes it much easier to move files to your vintage PC.

If you found this post informative or helpful, please share it!