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:
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.
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.