We never noticed that the BIOS only saw 137GB. It turns out that there is a very common "137GB" ATA hard drive limit present in most older system BIOSes. It comes from a 28-bit addressing limitation in ATA controllers and BIOSes before 2006. There was an architecture change to ATA-6 and the 48-bit LBA, which is explained very clearly here in geek terms:
ATA, IDE, and EIDE
So, every time a write crossed the 137G barrier, it trashed the boot sector. My most recent BIOS does not support 48-bit LBA. There is this unhelpful Dell document:
BIOS Reports Less-than-Expected Drive Capacity on Dell™ Latitude™ D600
which implies that all should be OK except for the BIOS reporting number.
There is a Microsoft document:
How to enable 48-bit Logical Block Addressing support for ATAPI disk drives in Windows XP
Which implies that XP SP1 or greater should make everything operate properly.
My theory is that there is a Dell utility or driver that uses the BIOS for some function and causes the addressing SNAFU.
Bottom line: if you upgrade an older IDE / ATA style system past 137 G, be sure to verify that the BIOS supports it. By the way, 137G turns out to be about "127.9G" in the Acronis disk director or Disk Management utility because of the math:
2^28*512 = 137 438 953 472 bytes
137 438 953 472/(1024*1024*1024)= 128 Gb
The confusion with full decimal, truncated decimal, and kBytes leads to different numbers thrown about, referring to the same problem -
The extra space must remain unused - it cannot be assigned to a partition or second drive because the original issue with BIOS addressing overflow still exists.
- A word to the wise: the next arbitrary size barrier is rumored to be 2.2 Terabytes, although a fully configured 48-bit LBA can support 144 petabytes (144,000,000 gigabytes).