FIXME Needs download links, sources, and correct syntax for code boxes

DDRescue

A brief manual on how to use ddrescue
Download and burn Ubuntu rescue remix
List the available devices, partitions and file systems
sudo fdisk –l

Change current folder to /mnt. Note that you could mount anywhere but traditionally, mounts are done under this folder.
cd /mnt

Create a subfolder under which the USB drive will be mounted. This USB drive will be used to save the hard disk image. Note that you should use sudo in order to issue the commands as admin.
sudo mkdir folder1

Mount the USB drive on the newly created folder. Use the correct file system (ntfs or vfat for FAT32). Get the correct partition name and number from fdisk -l
mount -t ntfs /dev/sdxn /mnt/folder1

Start ddrescue to make an image of the partition into a file called disk.img (you can select any other file name). logfile is used to log the progress. Again, it can be any file name. This will do a first pass on the partition skipping the failed sectors.
ddrescue /dev/sdxn /mnt/folder1/disk.img logfile

Reissue the same command specifying -r 3 to retry the failed sectors three times. You can select a different number of retries.
ddrescue -r 3 /dev/sdxn /mnt/folder1/disk.img logfile

At this point you can reissue the previous command varying the number of retries to attempt further recovery of sectors that have failed so far.
To access the recovered data, you can either mount the image on a Linux system or copy the disk image into a new hard drive. To mount the image, first create a new mount point (an empty folder under /mnt)
sudo mkdir /mnt/folder2

Mount the image using the loop device that makes the disk image appears as a physical disk
mount -o loop –t ntfs /mnt/folder/disk.img /mnt/folder2
The data can now be accessed by getting into /mnt/folder2 either through the command line or the GUI

To copy the data into a new partition, issue the following command
dd if=/mnt/folder1/disk.img of=/dev/sdxn
where /dev/sdxn refers to the target partition on the new hard drive. Note that this partition should have been created with the exact same size as the original partition. A greater partition than the original would be wasting disk space. Once this is done you can boot Windows and run chkdsk to fix any file system error.
Warning: Issuing dd command with the wrong parameters can destroy your data. Make sure you specify the correct target device after /of=.

EX: # ddrescue -v -r3 /dev/sdc /dev/sdd ddrlog.txt [Source ] [ Destination ] [ logfile for continuity after failure]

OPTIONALLY: If you encounter a crash, you can clone from the back of the drive retrying all of the troubled areas from the back of the disk
# ddrescue -v -R -n /dev/sdc /dev/sdd ddrlog.txt
# ddrescue -v -R -r1 /dev/sdc /dev/sdd ddrlog.txt

This program will not recover the same sector twice (if its already been recovered and logged) because of the way it keeps the log file, so it will not be a waste of time to just repeat the same forward commands over and over if you experience crashes - however it doesnt hurt to just run a reverse command.