First you would need to assess the level of damage by checking the “SMART” status (CrystalDiskInfo, HDTune, HD Sentinel...).
Then if the damage is still manageable (it probably is if an O.S. can still boot from it), and relatively stable, the best approach would be to clone it (direct copy from device to device) or image it (creating a large file which is an exact duplicate of the source device onto the recovery device) with a tool designed to deal with failing HDDs ; the two best freeware options are ddrescue and HDDSuperClone, both operating on Linux, both keeping a log of the copy process and allowing to resume it without losing what's already been secured. Both (and a bunch of other data recovery tools) are included on the
HDDLiveCD, a Lubuntu distribution custom made by the author of HDDSuperClone. It is supposed to be superior to ddrescue in some situations, in particular the kind of situation described here, whereby a HDD becomes unresponsive when hitting a bad area and has to go through a power cycle to be work normally again, until the next bad block is encountered, and so on. I don't have first-hand experience with that kind of situation and HDDSuperClone, so I couldn't comment further ; the author may reply in this thread (nickname = “maximus”). My second serious data recovery endeavour (for my former neighbour's sister) involved a 250GB Maxtor HDD which had that kind of issue, and all I had was ddrescue, with very little experience. I managed to get a complete image (minus about 12MB) by repeatedly shutting it off and turning it back on then re-running ddrescue (dozens of time over a whole night while I was watching stuff on my desktop computer), sometimes changing some parameter in the command (for instance ddrescue can copy in reverse, which is slower but sometimes works better than copying forward -- actually both of these tools include reverse copying at some steps of their regular operation, but it's also possible to do everything in reverse if it happens to work better with a particular case). HDDSuperClone is supposed to do that automatically, but this feature is possibly only available with the “Pro” license, not sure.
I am not sure I understood anything of what's under “P.S.” -- I need some tea right now.