Q:

Windows detected a hard disk issue, but scandisk detects nothing

It's an old Toshiba M200, and I'm wondering whether to buy a cheap new HD to give it a new lease of life, but hesitating in case the problem is not the hard disk but the controller or something.
Is there any way (apart from trying another HD) to be sure that it is in fact the disk that is playing up?

A:

You can do several things to check that the HDD is working correctly (or not). One of the most usefull is to use SMART (Self-Monitoring, Analysis and Reporting Technology) and do an extended test so it will check all the disk.
You can use S.M.A.R.T. Monitoring Tools to check your disk in Windows. But if you find that it doesn't work correctly (due to the HDD failing) or it hangs/freezes/etc, you could use a LiveCD such as System Rescue CD to boot the PC from there and run the SMART Tools (they're embeded in the LiveCD).
Both work more or less the same, the only difference is that Linux uses /dev/sda1 to reference de disk/partition and Windows uses their drive letter C:. You should do the following:

Run smartctl -i C: (or /dev/sda1 in Linux) to check the information of your HDD. In the bottom lines you can see if your HDD supports SMART and if its enabled. If SMART is disabled but it supports it, run smartctl --smart=on C: to enable it.
Run smartctl -t long C: to execute the extended disk self-test. It should display how long its gonna take.
Once finished, run smartctl -a C: to obtain all the data of your drive once the test has ended. Here you will find a lot of information, including the errors detected and where are they.

