The maximum size restrictions on a hard drive did exist because the older LBA standard called LBA28 only allowed 28 bits to address a sector. Therefore, there was a limit of 228 sectors on a hard disk. Given the sector size of 512 bytes, the maximum number of sector addresses is 268435456 sectors, which is precisely 128 gigabytes.
Note that 128 GB (137,438,953,472 bytes) is in fact a little bit more than 137 billion bytes. The drive makers, unlike programmers, use decimal size units speaking about the hard disk size. Because of this, drive vendors can sell a 128GB drive as having size of 137GB (see, e.g., this post).
You can come across a 128GB limit if the mobo is old (something 2002-ish), or while using an OS which is not up to date (similar to Windows 2000 or XP prior to Service Pack 2).
The corrective actions are
- Flashing the latest possible mobo BIOS. This may or may not work, depending on the specific mainboard.
- Updating the OS. If other components are up to speed, that in most cases solves the problem.
The HPA is a feature of a hard drive allowing the OS hide a part of the capacity of the hard drive.
This provides some compatibility for legacy computers, because one can use hard disk in an old PC which cannot handle large hard disks.
If turned on inadvertently, the HPA fools the operating system to believe that the hard drive is smaller than it should be. If this is not desired, you can reset the HPA, usually with some vendor-supplied software.