一、介绍extundelete

         1.extundelete的文件恢复工具,该工具最给力的一点就是支持ext3/ext4双格式分区恢复。

         2. 在实际线上恢复过程中,切勿将extundelete安装到你误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖。

         3. extundelete还是有很大的不完整性,基于整个磁盘的恢复功能较为强大,基于目录和文件的恢复还不够强大

         4. extundelete执行完毕后在当前目录生产一个RECOVERED_FILES目录,里面即是恢复出来的文件,还包括文件夹。

         5.任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用。

                   umount /dev/partition 

                   mount -o remount,ro /dev/partition

         6.保持良好的习惯,绝对比恢复数据要更简单。

二、安装

         0.yum install e2fsprogs* e2fslibs* -y

         1.wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

         2.tar -axf extundelete-0.2.4.tar.bz2 -C /usr/local/src

         3.cd /usr/local/src/extundelete-0.2.4

         4../configure --prefix=/usr/local/extundelete

         5.make

   6.make install

         7.ln -s /usr/local/extundelete/bin/* /usr/local/bin/

 

三、使用及命令

    1. umount或者read only 分区

                   umount /dev/partition 

                   mount -o remount,ro /dev/partition

 

    2.切换到存储恢复文件的目录

                   cd $dir

        

    3.命令

Usage: extundelete [options] [--] device-file

Options:

  --superblock           打印指定分区的超级块信息。如不加任何的参数,

此选项是默认的.     

extundelete --superblock /dev/sda3 <---> extundelete /dev/sda1

                       

  --journal              显示块的日志信息,同--superblock

extundelete --journal /dev/sda1

 

  --after dtime          只恢复指定时间【dtime】(时间戳)之后,被删除的数据

 

假如删除的时间大概是2011-7-26 1430

date -d "Jul 26 14:30" +%s

得出秒数 1234567890

恢复此时间后删除的所有文件

extundelete /dev/sdb1 --after 1234567890 --restore-all

 

  --before dtime         只恢复指定时间【dtime】(时间戳)之前,被删除的数据

 

Actions:

  --inode ino                显示某分区inodex的信息,一般是查看该分区下所有的文件.

extundelete --inode 2 /dev/sda1

 

  --block blk              显示某分区blockx的信息.

 

  --restore-inode ino[,ino,...] 恢复一个或多个指定inode号的文件,该恢复的文件,

保存在当前目录下的RECOVERED_FILES里,文件名为【file.$inode

extundelete /dev/sda1 --restore-inode 13,14

 

  --restore-file 'filename'        恢复指定的文件(被删除的),文件位于当前目录下

RECOVERED_FILES/$filename,文件名还是原来的              

extundelete /dev/sda1 --restore-file initramfs-2.6.32-358.el6.x86_64.img

 

  --restore-files 'read_filename'  恢复指定的文件(真实存在的)中的内容,

文件位于当前目录下的RECOVERED_FILES/$filename,文件名还是原来的

                                                        vi test_restore.txt(结尾不可有多余的空格)

                                                                 System.map-2.6.32-358.el6.x86_64

                                                                 config-2.6.32-358.el6.x86_64

                                                                 symvers-2.6.32-358.el6.x86_64.gz

                                                                 vmlinuz-2.6.32-358.el6.x86_64

                                                                 initramfs-2.6.32-358.el6.x86_64.img

         extundelete /dev/sda1  --restore-files test_restore.txt

 

 

  --restore-directory 'dir-name'      恢复指定的目录,文件位于当前目录下的

RECOVERED_FILES/$dir-name,文件名还是原来的

                                                                  extundelete /dev/sda1  --restore-files grub

 

  --restore-all                          恢复某分区里所有被删除的数据,文件名还是原来的

                                                                 extundelete /dev/sda1   --restore-all

   4.

    ①--superblock

extundelete反删除_第1张图片

      --journal

extundelete反删除_第2张图片

 

      --after dtime

假如删除的时间大概是2011-7-26 1430

date -d "Jul 26 14:30" +%s

得出秒数 1234567890

恢复此时间后删除的所有文件

/usr/local/bin/extundelete /dev/sdb1 --after 1234567890 --restore-all

extundelete反删除_第3张图片

    ④--before dtime

extundelete反删除_第4张图片

      --inode


extundelete反删除_第5张图片

      --restore-inode ino[,ino,...]

extundelete反删除_第6张图片

      --restore-file 'filename'

extundelete反删除_第7张图片

    ⑧--restore-files 'read_filename'

extundelete反删除_第8张图片

      --restore-directory 'dir-name'

extundelete反删除_第9张图片

      --restore-all

extundelete反删除_第10张图片