_RESCUE A DEAD/DYING HARD DRIVE_
**DISCLAIMER**
DO NOT EVER rely on this as a perfect solution. it is not perfect and does not guarantee recovery of all data. it is always better to have a backup measure in place. "prevention is better than a cure."
1. upon noticing damage to the hard drive (clicking, other strange noises, slowing down, etc.), immediately unmount the device. if it's your main OS drive, boot into knoppix (you DO have a knoppix disc handy, don't you?).
2. install ddrescue (also referred to as GNU ddrescue to avoid confusion with dd_rescue, another utility which is now deprecated); it is safest to go with the source (found at http://www.gnu.org/software/ddrescue/ddrescue.html) as this offers the most recent release, but installing from a repo should be fine as well.
3. ddrescue's format differs slightly from dd. whereas with dd, it'd be "dd if=/foo/bar of=/X/Y", it is in ddrescue "ddrescue /foo/bar /X/Y". make sure you read the man page (man ddrescue, sometimes man gddrescue in debian-based repo installs). either image this to another drive of equal or larger capacity, or to an image file (will be the entire capacity of the drive you are imaging from).
4. preferably from a livecd (still have that knoppix disc?), run a fsck on the drive/image to repair any filesystem corruption inherent in the image.
5. you now can either mount the newly imaged drive or the image file itself (using -o loop) to copy data you need from it.
there are many more advanced procedures out there, but they are beyond the scope of this short procedure.