Going to be using ddrescue for this. Could be called ddrescue or gddrescue to install it from your distros repo. This is not dd_rescue, do not use dd_rescue.
From a fresh boot of your Linux system, in a terminal 'fdisk -l | grep sd'
Should get /dev/sda and if you have more drives /dev/sdb, /dev/sdc and so on. Take note of what you have.
Plug in the bad drive and run 'fdisk -l | grep sd' again, you should see the drive /dev/sde or whatever was next from the first results. Take note of the device. You can also run 'dmesg | tail'
Now plug in the known good drive you're going to clone to, and repeat above noting the device just added.
Do not use spinrite to recover from a physically failing drive, you can't fix a physiacally failing drive with software. If the filesystem is hosed, then spinrite might be ok.
The goal is to get the data off the failing drive asap, then monkey with the bad drive to your hearts content.
The ddrescue command to use goes like this, and if there are errors when the first pass finishes, run the 2nd and 3rd pass commands I'm giving you to get more data.
The first pass gets as much data off as possible without stressing the drive. The 2nd pass tries again but retries the error once. The 3rd and final pass will recover in reverse.
Assuming /dev/sdb is the bad drive and /dev/sdc is the good drive only for this example, your devices may be different. You need the Recovery.log in the command for the other 2 passes and also in case the recovery for whatever reason gets interrupted. Repeat the command and the recovery will resume. Without Recovery.log you risk the recovery.
Pay attention to which drives you're using and run them as root or use sudo
1 Example - ddrescue -vvf -n -d /dev/baddrive /dev/gooddrive Recovery.log
ddrescue -vvf -n -d /dev/sdb /dev/sdc Recovery.log
2 Example - ddrescue -vvf -r1 /dev/baddrive /dev/gooddrive Recovery.log
ddrescue -vvf -r1 /dev/sdb /dev/sdc Recovery.log
3 Example - ddrescue -vvf -R /dev/baddrive /dev/gooddrive Recovery.log
ddrescue -vvf -R /dev/sdb /dev/sdc Recovery.log
If you value the data, quit plugging the bad drive into Windows boxes.
Good luck