@Cozmo If you cannot run SpinRite, here are 4 lesser alternatives. Anything that makes everything on the drive be read may jar the controller into doing some housekeeping. We've seen some results from SpinRite at Level 2, which is read only unless it needs to do corrections. So, you could try one of the following. My experience is with Win 7. If you're running something else, you'll have to adapt.
1) chkdisk - Go into Windows Explorer. Right click on your drive and click properties. Go to the tools tab, error checking, and click check now. You may need to enter an admin password. Turn off both check boxes which say - fix file system errors and scan for and attempt recovery of bad sectors. IE, don't do those things. See if the system will pass a basic diagnostic. Then, if it does, go back in and leave the fix file system box off but turn the scan for bad sectors box on. This should force the hard drive to read every sector. If it finds bad ones, it will probably reallocate them. But it won't try as hard to save them as SpinRite would. But, if the original chkdisk passed, hopefully any bad sectors are not occupied.
2) AV - If you're running AV (anti virus), go into it's control panel and set it for a full scan including all files, not just executables. Run the scan. This should read every sector that's occupied. You can also use SDELETE to use up all non allocated space within established partitions temporarily. This won't touch unpartitioned space. This was originally designed to force deleted files to actually get deleted. This is an official MS program. Be sure to read the instructions.
https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete I think
@Steve originally told us about it.
3) On Linux - use the DD command to copy every single block to the /dev/null device. This will force all blocks to be read. Not for the faint of heart. * WARNING * you must mount and unmount the drive properly. You must execute the command properly. If you do it backwards, Linux will happily erase your entire hard drive without asking questions. You've been warned.
4) Clone the drive - You could clone your drive to a backup drive, which isn't a bad idea anyway. The backup drive should be the same size as the original. The easiest way to do this is a stand alone drive cloning device. Make SURE you put the original source drive in the source slot and the backup target drive in the target slot. Press clone and leave for a few hours. When it's done, remove the BACKUP drive from the target slot in the cloner, put it in the PC, boot it, and test it. THEN, take the BACKUP drive from the PC, put it in the cloner in the source slot, and put your original PC drive in the target slot. You're going to clone your new backup back to your original PC drive. Press clone and walk away for a few hours. Then, put your original drive, newly cloned, back in the PC. If this makes you nervous, you could do the cloning to a third drive altogether.
Any one of these procedures should at least read all the active sectors of the drive. The cloning procedure will have the result of rewriting the whole drive, similar to the way SpinRite Level 3 would.
Hope it helps.
May your bits be stable and your interfaces be fast.
Ron