5

I have an old PC from 1999 that has an ASUS P5A motherboard. When I power it on, it says ASUS P5A ACPI BIOS Revision 1011 Beta 005 and 05/02/2002-ALADDIN5-<<P5A>>:

POST screen of Award BIOS v4.51PG, with the Energy Star logo in the upper right. The bottom of the screen contains the motherboard model identifier and a prompt ‘Press DEL to enter SETUP’.

I recently read that up until 2001 or 2002, there was a 137 GB limitation for hard drives. This PC is showing a BIOS date of 2002/5/2, and I cannot find any information on whether it supports hard drives larger than 137 GB.

I connected a 160 GB hard drive as master on the secondary IDE channel, and then in the BIOS, I told it to auto detect the hard drives. This is what it showed for the secondary master:

Award CMOS setup utility, probing for hard drives. Under a prompt ‘Select Secondary Master Option (N=Skip)’ there are three options: option 2(Y), with parameters: SIZE=8447, CYLS=1027, HEAD=255, PRECOMP=0, LANDZ=16382, SECTOR=64, MODE=LBA; below it option 1, with parameters: SIZE=8455, CYLS=16383, HEAD=16, PRECOMP=65535, LANDZ=16382, SECTOR=63, MODE=NORMAL; and finally option 3, with parameters: SIZE=8451, CYLS=2047, HEAD=128, PRECOMP=65535, LANDZ=16383, SECTOR=63, MODE=LARGE. A note below warns that ‘Some OSes (like SCO-UNIX) must use "NORMAL" for installation’.

I am not sure which of those options to select. But does it even matter? I tried entering in my own garbage values for the secondary master (CYLS=1, HEAD=1, PRECOMP=1, LANDZ=0, SECTORS=63, MODE=NORMAL). Then I booted the computer using the Ultimate Boot CD and ran IBM Drive Fitness Test, and it detected the correct secondary master hard drive model number along with the 160 GB size.

If IBM Drive Fitness Test could detect the hard drive size correctly, does that mean that the BIOS supports hard drives larger than 137 GB?

Also, if a program is able to determine the correct hard drive size despite the incorrect hard drive parameters that I entered in the BIOS, then what is the point of either auto-detecting the hard drive or manually entering the correct parameters in the BIOS?

10
  • I don't remember any 137 GB limit. I do remember a 32 MB limit. – manassehkatz-Moving 2 Codidact Apr 14 at 22:09
  • @manassehkatz-Moving2Codidact see thestarman.pcministry.com/asm/mbr/Limits.htm – pacoverflow Apr 14 at 22:36
  • It isn't that I don't believe there was such a limit. More like "137 GB hardly seems Retro". – manassehkatz-Moving 2 Codidact Apr 14 at 22:40
  • 3
    @manassehkatz-Moving2Codidact worrying about whether BIOS supports HD feels pretty retro to me. – Tomas By Apr 14 at 22:57
  • 2
    @TomasBy No, the same problem plagues us even these days. Once I put a 3TB drive in a PC with latest BIOS updates and in that PC everything reports it is a 2TB drive. – Justme Apr 15 at 5:48
7

Very briefly:

The way harddisks are addressed changed over time. Originally, you'd specify cylinder/head/sector (CHS), then it switched to logical block addresses (LBA), and the commands for those went through various versions with an increasing number of bits. As you can read on Wikipedia, LBA first used 22 bits, then 28, then 48.

So you need to distinguish between (1) what does the BIOS support and (2) what does the OS support.

Actually, your link from the comments already gives an explanation:

"Operating systems that do not have 48-bit LBA support enabled by default (such as Microsoft Windows 98, Microsoft Windows Millennium Edition (Me), or Windows 2000) that are installed on a partition that spans beyond the 28-bit LBA boundary (137GB) will experience data corruption or data loss."

and

Many computer BIOS will be unable to recognize hard disks over 137 GB, since they are limited to using only 28 bits to keep track of the LBA sector count.

So you can run into trouble with your OS if you have a large harddisk with a partition for that OS that is larger than or placed at a position greater than the LBA size the OS sizes.

And you can run into trouble with your BIOS if you try to boot from a partition that is larger than or placed in a position that is greater than the LBA size supported by the BIOS.

This means:

  • If you do not want to boot from that disk, it doesn't matter at all if the BIOS "supports it".
  • If you want to boot from that disk, make sure you boot from the first partition. I'd also assume as long as the bootstrap from BIOS works, that partition can be even larger than what the BIOS supports (but I never tried that, and the simplest way to find out is to try). However, this probably depends on the first stage of the bootstrap process that uses BIOS calls also to be located early enough, which may be difficult to control.
  • You should make sure that the OS you boot can deal with all partitions you want that OS to access. If there's potential trouble, make the partition small enough.
  • If all else fails, you can make a first small partition with something on it that can chain boot to other partitions probably would work.

This means you should select LBA, and find an OS that supports the partition size you want to use, or make the partition smaller.

4
  • If an OS doesn't support 48-bit LBA, would it still be able to know a hard drive is greater than 137 GB? The IBM Drive Fitness Test program from the UBCD uses PC DOS 7.0, and PC DOS apparently did not support LBA until version 7.1. But Drive Fitness Test correctly reports my hard drive as 160 GB. I just want to make sure it is able to scan the entire 160 GB surface of the drive. – pacoverflow Apr 15 at 6:39
  • How can a 22-bit LBA address 8GiB? Assuming 512-byte sectors, it's 2^22 * 0,5KiB = 4Mi * 0,5KiB = 2GiB. Then the 28-bit LBA for 128GiB (about 137GB) makes sense, too. – the busybee Apr 15 at 8:54
  • 2
    @thebusybee The 22-bit LBA was optional, but still used. It allows LBA access but up to 2GB only. Without LBA, CHS addressing of drives can be used up to nearly 8GB with 16383/16/63 geometry. Drives more than 16383 cylinders must use 28-bit LBA to go past 8GB. – Justme Apr 15 at 10:54
  • 1
    I've dealt with some interesting BIOS implementations (specifically on ThinkPad 701C) that would "wrap around" during disk size detection instead of limiting size to their max supported. Meaning if the disk size is bigger than 504MiB (528MB) it will show only the reminder of dividing disk's actual capacity by 504MiB. E.g., for 720MB disk it would show only 192MB. However, once you boot into an LBA-compliant OS that doesn't use BIOS for disk access (e.g. Linux) then you can use the full disk capacity. – moonwalker Apr 15 at 17:32
5

That BIOS screen clearly says that it detects the drive as roughly 8 GB. The parameters say 16383/16/63 as so this BIOS cannot detect or provide the extended disk services that would allow the drive to be used beyond the 16383 cylinders, or the 8GB limit.

It does not matter if another program can detect the size properly by communicating with the drive directly - it still can't be used via BIOS. It can boot an OS if it is on a partition below the 8GB limit. An operating system or drive overlay with a driver that can access drives larger than 137GB can be used to access the drive.

It is best to select the first option, LBA, if you wish to have best compatibility.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.