linux下文件恢复工具extundelete介绍

1. 文件恢复说明
Linux下删除文件并不是真实的删除磁盘分区中的文件,而是将文件的inode节点中的扇区指针清除,同时释放这些数据对应的数据块,当释放的数据块被系统重新分配时,那些被删除的数据就会被覆盖,所以误删除数据后,应马上卸载文件所在的分区。
每个文件有inode和block组成,inode是文件系统组成的最基本单元,它保存着文件的基本属性(大小、权限、属主组等)和存放的位置信息。而block用来存储数据。类似key-value,inode就是key,block对应value,通过key查找key对应的value。类似python的字典。
查看根目录的inode值

[root@nfs test]# ls -id /
2 /
[root@nfs ~]# mount /dev/sdb1 /test/
[root@nfs test]# ls -id /test 
2 /test

2. 安装extundelete

yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel
cd /server/tools
wget http://ncu.dl.sourceforge.net/project/extundelete/extundelete/0.2.0/extundelete-0.2.0.tar.bz2
tar jxvf extundelete-0.2.0.tar.bz2
cd extundelete-0.2.0
./configure
make; make install

3. extundelete命令使用说明

Usage: extundelete [options] [--] device-file
  --superblock           打印指定分区的超级块信息。如不加任何的参数,此选项是默认的.
例:extundelete --superblock /dev/sdb1
--journal              显示块的日志信息,同--superblock。
--after dtime          只恢复指定时间【dtime】(时间戳)之后,被删除的数据
例:假如删除的时间大概是2011-7-26 14:30
[root@nfs ~]# date -d "Jul 26 14:30" +%s
1469514600                     #得出秒数 1234567890
extundelete /dev/sdb1 --after 1234567890 --restore-all      恢复此时间后删除的所有文件
--before dtime         只恢复指定时间【dtime】(时间戳)之前,被删除的数据
Actions:
--inode ino                显示某分区inode为x的信息,一般是查看该分区下所有的文件.
--block blk              显示某分区block为x的信息.
--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
命令:extundelete /dev/sda1  --restore-files test_restore.txt
--restore-directory 'dir-name'      恢复指定的目录,文件位于当前目录下的RECOVERED_FILES/$dir-name,文件名还是原来的
--restore-all                          恢复某分区里所有被删除的数据,文件名还是原来的

4.查询恢复数据信息

extundelete /dev/sdb1 --inode 2

5.恢复/dev/sdb1分区下所有的文件

extundelete /dev/sdb1 --restore-all

你可能感兴趣的:(linux,运维,centos,服务器)