Recovering deleted files in the ext3fs is a very hard task. It happens because the journal overwrites the block pointers in the inodes with zeroes.
Carlo Wood knew it, but he didn’t surrender when he deleted accidentally his home directory. He studied how ext3fs works, then he wrote a tool, ext3grep, that helped him to recover sucessfully all the lost data. I had no time to analyze and test it but it seems it performs a jorunal-based attack.
Via LWN.net
I’ve glance at the article, it seems so good explained. I’m not sure about how important can be a document to deserve such as time, but if you want to understand how ext3 works, read it!