In the FAQ Andreas Dilger states:
In order to ensure that ext3 can safely resume an unlink after a crash, it actually zeros out the block pointers in the inode, whereas ext2 just marks these blocks as unused in the block bitmaps and marks the inode as "deleted" and leaves the block pointers alone. Your only hope is to "grep" for parts of your files that have been deleted and hope for the best.
However, several tools exist that try to recover/undelete lost inodes anyway - with varying success:
There are also free (as in beer) recovery tools for the Microsoft Windows operating system that are able to recover data off ext2/3 partitions:
- R-Studio for Linux (Commercial)
- Stellar Phoenix Linux Data Recovery (Commercial, demo available for download)