chpox provides transparent checkpointing and restarting of processes on Linux clusters. It was originally designed for recovering tasks that have a long execution time (i.e. numerical simulations) in case of system crashes, power failures, etc. It may work with openMosix, is SMP safe, does not require program recompiling/relinking, and supports virtual memory, regular open files, pipes, Unix domain sockets, current directory, and child processes.
dd_rescue copies data from one file or block device to another. It is intended for error recovery, so by default, it doesn't abort on errors and doesn't truncate the output file. It uses large block sizes to quicken the copying, but falls back to small blocks upon encountering errors. It produces reports that allow you to keep track of bad blocks. dd_rescue features a number of optimizations, such as sparse block detection, preallocation, and Linux zerocopy (splice). It supports data protection by (multi-pass) overwriting of files or partitions with good and fast random numbers.
dd_rhelp allows users to retrieve, quickly and easily, recoverable data from any device with bad sectors. It will copy it using dd_rescue in all the appropriate ways (reverse copy, setting start and stop offset accordingly to previously rescued data) to recover the maximum data possible before spending time on bad sectors. It is straightforward to use, supports ctrl-c at anytime, can resume a job (or standalone dd_rescue job) by parsing the dd_rescue logs, and displays a nice ASCII bar showing rescue progress.
ddrescueview is a small tool that allows the user to graphically examine ddrescue's log files in a user-friendly GUI application. The Main window displays a block grid with each block's color representing the block types it contains. Many people know this type of view from defragmentation programs. The program is written in Object Pascal using the Lazarus IDE. It can be compiled to run on Windows, GNU/Linux, and probably OS X too. The downloads include binaries for the respective target platform and the project files (source code).
e2undel is an interactive console tool that recovers the data of deleted files on an ext2 file system under Linux. A library that allows you to recover deleted files by name is included. e2undel does not manipulate any internal ext2 structures, and it does not require any additional tools. It should be useable without knowledge of the ext2 interna.