在 Linux 下,基于开源的数据恢复工具有很多,常见的有 : debugfs 、R-Linux 、ext3grep 、extundelete 等,比较常用的有 ext3grep 和 extundelete ,这两个工具的恢复原理基本一样,只是 extundelete 功能更加强大。
在利用 extundelete 恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息(根目录的inode一般为2)来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块,间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。该工具最给力的一点就是支持ext3/ext4双格式分区恢复,基于整个磁盘的恢复功能较为强大。
- ext3grep官方网站:http://code.google.com/p/ext3grep/
- extundelete官方网站:http://extundelete.sourceforge.net/
在实际线上恢复过程中,切勿将软件安装到你误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖。