7

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. Apr 14, 2021 at 22:09
  • @manassehkatz-Moving2Codidact see thestarman.pcministry.com/asm/mbr/Limits.htm Apr 14, 2021 at 22:36
  • 5
    @manassehkatz-Moving2Codidact worrying about whether BIOS supports HD feels pretty retro to me.
    – Tomas By
    Apr 14, 2021 at 22:57
  • 3
    @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, 2021 at 5:48
  • 1
    2TB limit is MBR partition table limit (2^32 sectors or 512*2^32 bytes), easily overriden by using GPT partition table, where sectors are counted in 64bit quantities.
    – lvd
    Apr 15, 2021 at 19:36

3 Answers 3

11

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.

5
  • 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. Apr 15, 2021 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. Apr 15, 2021 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, 2021 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, 2021 at 17:32
  • "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 has become very common for various Linux distributions, especially those with paid-for support. My guess would be that it removes a lot of support calls for non-expert installations. Aug 29, 2021 at 10:42
6

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.

3
  • Sorry I don't like to down vote but this answer is incorrect. The LBA28 127GB limit is a hardware IDE controller limit and there is no software solution to fix it. You have to buy an add in PCI card. Apr 4, 2022 at 1:49
  • @AlexCannon You should really give proof then that it is a hardware limit, because it is not. It is purely a protocol issue. A motherboard BIOS update or DDO is enough. An add-in PCI card works because it comes with a BIOS that natively supports LBA48 protocol, but it is not the limit of the hardware IDE controller.
    – Justme
    Apr 4, 2022 at 4:31
  • I tried to remove my down vote but it won't let me unless you edit your answer. Sorry about that. Now I am confused about it. Reading this seagate.com/support/kb/disc/tp/137gb.pdf from Seagate says that some chipsets can be made to work with LBA48 addressing with a driver update. But a hardware change could also be required. A later service pack for Windows 2000/XP is required is well to have any LBA48 support. Apr 5, 2022 at 2:31
0

edit: According to this document here https://www.seagate.com/support/kb/disc/tp/137gb.pdf, some IDE or PATA controllers had driver updates available which allowed exceeding the 127GiB limit. The document also says that an IDE or PATA controller hardware change is necessary in some cases. So saying that it is a hardware limit is technically true if the IDE controller and driver are considered to be one unit, which is usually the case with proprietary Windows software.

The 127GB (LBA28) limit is an IDE controller limit. There is no software work around because the IDE controller company didn't make a new driver in many cases. If there is no proprietary driver update to fix it, there wouldn't have made a BIOS update to fix it either. You have to buy a PCI add in card that supports IDE LBA48 or SATA and use a cheap SATA to IDE converter. If it supports ATA133 it should support LBA48. If it supports ATA66 it won't support LBA48. Otherwise check the documentation.

Your hardware is too old to support LBA48. You probably cannot access beyond 127GB on any IDE hard drive you connect to that motherboard, using the proprietary drivers.

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?

Those Cylinders, Heads, and Sectors parameters in the CMOS setup are for original INT 13h BIOS access to the hard drive, which is the original legacy way of hard drive access that is limited to 8.4GB. Any BIOS since the late 1990s will support extended INT 13h access which is a 64-bit number. Any version of DOS, or boot loader, or disk utility that supports partitions greater than 8.4GB will use extended INT 13h. So most of the time it doesn't matter what values you put in the CMOS setup in these situations. Sometimes software will use original INT 13h access though in which case there will be problems if the CHS values change. Most operating systems that are more advanced than DOS use their own drivers to access the hard drive, so the CMOS INT 13h method is not used, and so the CHS values for the drive in the BIOS won't matter.

Edit: I had previously said that this was a hardware limit, but it appears that I was mistaken.

3
  • 1
    It is not a hardware limit. LBA48 is a protocol how to communicate larger sector numbers between host and drives. The drive can be probed to indicate support for LBA48 with the IDENTIFY command, and then host can use the LBA48 protocol which is a software feature how to write the command to the drive with LBA48 protocol. There should be no requirements for the host controller to know how to implement LBA48 or ATAPI or whatever protocol over the IDE interface.
    – Justme
    Apr 4, 2022 at 7:16
  • The hardware change you refer to must mean that unless you can't update your BIOS and update your OS drivers to be able to boot and run from LBA48 drive, then you need new IDE card which has BIOS for booting and such OS drivers that understand how to use LBA48. But BIOS and drivers are just software. With a DDO you don't need BIOS update for booting LBA48. But you can't blame the chipset hardware if there are no LBA48 compatible drivers for your specific OS. Even if it had no LBA48 Windows drivers, it is still possible it is supported on Linux.
    – Justme
    Apr 5, 2022 at 23:02
  • Yes that's right. I was reading that LBA48 requires a hardware upgrade, and you showed me that I am wrong. Which is great since it means I can use a large HDD with Linux. But to their credit, in the proprietary software world a driver and the hardware come together, so with no driver update, it basically means that new hardware is needed. Apr 6, 2022 at 0:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .