|If the mboard detects a 500gb drive fine, your mboard bios does NOT have (a) drive size limitatation bug(s), and it detects drive sizes larger than 137gb fine. |
However, the bios Setup must be set for the controller connection the old drive is connected to, to detect the drive properly.
E.g. Auto detect, by the method Auto or LBA.
If that's set to something else, the bios could detect the size of the old drive incorrectly.
If there's nothing wrong with that setting, a 40gb drive is relatively old, and the drive is probably in the early stages of failing.
Check your hard drive with the manufacturer's diagnostics.
See the latter part of response 1 in this:
(thanks to Dan Penny for this link:)
Hard Drive Diagnostics Tools and Utilities
If you don't have a floppy drive, you can get a CD image diagnostic utility from most hard drive manufacturer's web sites, but obviously you would need to make a burned CD, preferably a CD-R for best compatibility, on another computer if you need to.
In this case, use Seagate's SeaTools, the long test, to test the drive.
If the hard drive itself tests okay, any data problems found can be fixed, one way or another.