If everything goes wrong there is always ddrescue.
Use it with Ubuntu Live CD (I used 9.10 with enabled universe repository) and you are a winner.
Syntax is simple;
ddrescue /dev/hdX /dev/hdY
hdX – damaged disk
hdY- disk for backup
That’s it. Simple enough?