Data Recovery Best Practices

First, get another hard drive large enough to image the failing one onto.

Next, boot from a Linux LiveCD and use an imaging program that doesn't retry I/O errors endlessly. Mount the failing drive Read-Only first. Use dd_rescue (http://www.garloff.de/kurt/linux/ddrescue/) or an equivalent so that it doesn't get stuck forever rereading one sector when it encounters read errors.

If you can't get the whole drive this way or if it keeps disconnecting or freezing, put it in the freezer for a while then try again.

Finally, if you are able to mount the copy, do that. If not able to mount the copy, try Testdisk and Photorec or Recuva to recover data from the image. Recover the saved data to yet another separate partition.

If you had to use PhotoRec, you will probably want to disable recovery of plain text files unless there's something in that format you want to save since it produces a massive amount of tiny text files from most hard drives. Stick to photos and Office documents for most people.

There, that's some content. Now to plug my project: HalfNES

an impossible test