UPDATE: This post has been added at easywebdns : recovering ext3 hard disks
So, here are the tools you need
1- Checking a linux partition for bad sectors / Bad Blocks without deleting the data
badblocks -o /path/somefiletowriteto.txt /dev/sdb1
this will do a check and write the bad block numbers to a text file.
Please note that 6TB and 8TB hard drives will not work out of the box with badblocks program, you will probably get a message informing you that the boundary must fit a 32bit integer (Value too large for defined data type), in that case, you can always increase the block size with the (-b 4096) switch, this will give you 8 times more block addressing space (Since the default is 512 bytes.
If you want it to test the disks hard but you are OK with deleting the data (Say after you dd_rescue), then try the -w switch
badblocks -w -o /path/somefiletowriteto.txt /dev/sdb1 Or, to see information while it scans badblocks -wsv /dev/sdd > /root/250bad-blocks.txt
Notice that the -w has to come before the -o since the -o must be followed by a file name.
2- fsck /dev/sdb1 , the all famous, need i say more ?
tune2fs -O ^has_journal /dev/sdb1
remove the Journal (Converting ext3 to ext2 file system)
4- Mounting a disk: mount -t ext3 /dev/sdb1 /adirectory
5- debugfs <- use it in Read only more, this thing is like brain surgery, 1 mistake and your FS is playing chess in heaven with all the other dead disks
6- dd_rescue /dev/sdb1 /directory/mydisk.img
7- Running fsck on a disk image
fsck -y /path/mydisk.img
8- Mount the image
mount /pathto/backup.img /mountpoint/data
this is a nice link for you http://www.linuxjournal.com/article/193 that already has info about the stuff i mentioned here
Those are probably the most common, will add more when i remember them