Run a Linux system from another disk or a live cd/dvd with two disks connected: one that has failed and second that works good (the good one has to be mounted offcourse).
Make an uncompressed image (will work if that disk still manages to work):
dd if=/dev/sda1 of=/mnt/good_disk/image
This will take some time and a lot of disk space (equal to the copied partition) but You will have a mirror of the damaged disk and not worry about it anymore (whether it will die for good or not).
You have to adjust disk/partition labels and directories in the example (/dev/sda1) to suit Your layout.Then You can work on the copy and move Your files to a new working HDD.To mount the image You can enter:
mount -o loop /mnt/good_disk/image /mnt/mounted_image
At this point You can connect the destination disk (server's new hdd) and read: