BIOS detects drive with corrupt capacity. Can you fix it in Windows?

I’ve got an old computer based on an old motherboard (Asrock AM2NF3-VSTA) that is overall stable and useful , but seems to be having a hardware problem, so that it’s frequently detecting my WD6400AAKS (WD Caviar Blue 640 GB) with random capacities that may vary or not after each reboot, warm or cold.

Typically: 2.00 TB , 4.00 TB , 8.00 TB , 65.09 TB (and possibly others like *.09 TB ), possibly other “semi-reasonable but wrong” amounts, 17672947.76 TB , 2467231.87 TB , -15934819.43 TB (yes, this one is negative) and 5394275.00 TB . I cannot recall exactly the number and values of the latter four listed, so these are just invented and not the real ones, but they aren’t any: they’re a short number of very precise but clearly corrupt possible capacities, not sure now if of 7 or 8 digits at the left of the dot but all have 2 at the right, at least one is *.00 , and at least one is negative.

It can also happen that the disk is recognized with the right capacity of 596.17 GB .

This disk has worked fine in this mobo before. A larger disk has also worked in the middle, so it isn’t an incompatibility problem. Please notice that this is not any typical “I want to use the full capacity etc” issue. Well, the disk has NEVER appeared with less capacity than it should, always the same or more (except if you consider the one or two negative capacities it’s showing sometimes, but these behave the same way as the others).

The disk MBR and partitions are healthy , so Windows XP SP3 (the rig OS) and applications can boot, run and use the disk w/o problems, except two kind kind of programs when the recognized size is incorrect: the ones that deal with partitioning and the drive/partition imaging ones.

Under Windows, in case of incorrect size, MiniTool Partition Wizard can start anyway and it shows the recognized disk size (this program is from where I read the above told capacities, that don’t vary during the Windows session) and it can resize partitions if you manage to not touch the additional inexistant space, Windows Disk Management shows additional unallocated space with the XP limit of 2048GB total in any case, Acronis True Image Home 2010 starts but cannot do anything, and Easeus Partition Master and PowerQuest Drive Image v7 hang or exit with errors if you try with them.

The problem doesn’t only affect those programs under Windows, but the boot CD’s too. That’s why I believe it’s a hw problem.

I’ve tried everything in the hw front : replacing the disk (the problem started to show up with other disk and I’ve used the rig to format yet others), SATA cable, SATA port, CMOS battery, CMOS resetting, flashing older, newer or the same BIOS version, I think I’ve tried all possible combinations of BIOS settings with non essential features or mobo peripherals, RAM frequency and timings, AGP settings, voltages, SATA/IDE settings (not much to touch here as you cannot enter geometries or LBA limits manually, the BIOS shows the HD model and size correctly btw), boot devices order, all options to default,… More conservative or more aggressive doesn’t seem to matter.

Well, I’m fed up of hw manoeuveres. I know the exact number of physical sectors of the drive : 1,250,263,728. I could also translate it into bytes, KB, MB, GB or whatever is required. Could I enter it manually in a program (which one and where do I get it?) or registry key or whatever to set the drive size at hand?

I don’t know of any program that can set values for drive detection. I think the drive itself is going bad and I’d just test it on another system.

Well thanks, but I don’t think it’s the drive as it’s happened the same with other different drives (some not WD).

I’m currently trying fixing the “AGP voltage” in the BIOS. It used to be at “Auto” (the default setting) and now it’s at “Low” (there’s also a “High” setting that I haven’t tried yet). I had tried little with this setting if at all as AGP doesn’t have to do with SATA in theory, but I managed to learn that this voltage is also the motherboard chipset’s, so it should affect its stability and hence the HD recognition (my problem).

I’ve also fixed the DRAM voltage to “Normal” (1.8V) instead of the default setting “Auto” (that should also lead to 1,8V with my modules but…) that was the one I was using before to set them at JEDEC/SPD voltage, adequate for 2x400MHz 5-5-5-18-24 or 6-5-5-18-24 or 2x266 MHz 4-4-4-12-16. For the records, the modules can also work at 2.1V and 2x400MHz 4-4-4-12-16 (commercial spec), but the mobo wouldn’t supply more than 2.0V (“Ultra High” BIOS setting, there’s also a “High” setting for 1.9V), and it seems I can’t get system stability at any setting over 1.8V anyway.

With these settings (AGP Voltage “Low” instead of “Auto” and DRAM Voltage “Normal” instead of “Auto”) it seems to be recognizing well the HD size nearly always (it’s only failed once, with one of the random ±???.?? TB sizes; I’ve developed the theory that these sizes are purely a random failure as they don’t use to stick in the next boot, while the “reasonable failures” 2TB, 4TB, 8TB etc and the correct size of 596.17GB tend to stick; a curious corolary is that if I get a “reasonable failure” I have to set somewhat instable settings to recover -turning on “Spread Spectrum” may get this-, while if I get a “crazy failure” or the correct size my best bet is to stick with/return to stable settings for the next boot).

But, can’t the size be set manually in Windows?