数据恢复软件 extundelete

Posted on Posted in 安全
Tips: 本文创建于2015年11月15日,已超过 2 年,内容或图片可能已经失效!

![extundelete.png][1]

extundelete 解决 rm -rf 的困扰
[官网][2]

安装

  1. yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel  
  2.   
  3. tar jxvf extundelete-0.2.4.tar.bz2  
  4. cd extundelete-0.2.4  
  5. ./configure  
  6. make && make instll  

参数

  1. extundelete --help  
  2. Usage: extundelete [options] [--] device-file  
  3. Options:  
  4.   --version, -[vV]       Print version and exit successfully.   #显示软件版本号  
  5.   --help,                Print this help and exit successfully.     #显示软件帮助信息  
  6.   --superblock           Print contents of superblock in addition to the rest.  #显示超级块信息  
  7.                          If no action is specified then this option is implied.  
  8.   --journal              Show content of journal.   #显示日志信息  
  9.   --after dtime          Only process entries deleted on or after 'dtime'.  #时间参数,表示在某段时间之后被删除的文件或目录  
  10.   --before dtime         Only process entries deleted before 'dtime'.   #时间参数,表示在某段时间值钱被删除的文件或目录  
  11. Actions:  
  12.   --inode ino            Show info on inode 'ino'.  #显示节点 ino 的信息  
  13.   --block blk            Show info on block 'blk'.  #显示数据块 blk 的信息  
  14.   --restore-inode ino[,ino,...]     #恢复命令参数,表示恢复节点 ino 的文件,恢复的文件会自动放在当前目录下的 RESTORED_FILES目录中  
  15.                          Restore the file(s) with known inode number 'ino'.  
  16.                          The restored files are created in ./RECOVERED_FILES  
  17.                          with their inode number as extension (ie, file.12345).  
  18.   --restore-file 'path'  Will restore file 'path'. 'path' is relative to root   #恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放到当前目录下的 RESTORED_FILES 目录中  
  19.                          of the partition and does not start with a '/'  
  20.                          The restored file is created in the current  
  21.                          directory as 'RECOVERED_FILES/path'.  
  22.   --restore-files 'path' Will restore files which are listed in the file 'path'.    #恢复命令参数,表示将恢复在路径中已列出的所有文件  
  23.                          Each filename should be in the same format as an option  
  24.                          to --restore-file, and there should be one per line.  
  25.   --restore-directory 'path'  
  26.                          Will restore directory 'path'. 'path' is relative to the  
  27.                          root directory of the file system.  The restored  
  28.                          directory is created in the output directory as 'path'.  
  29.   --restore-all          Attempts to restore everything.    #恢复命令参数,表示将尝试恢复所有目录和文件  
  30.   -j journal             Reads an external journal from the named file. #表
    示从已经命名的文件中读取扩展日志
      
  31.   -b blocknumber         Uses the backup superblock at blocknumber when opening #表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件  
  32.                          the file system.  
  33.   -B blocksize           Uses blocksize as the block size when opening the file     #通过指定数据块大小来打开文件系统,一般用于查看已经知道大小的文件  
  34.                          system.  The number should be the number of bytes.  
  35.   --log 0                Make the program silent.  
  36.   --log filename         Logs all messages to filename.  
  37. --log D1=0,D2=filename   Custom control of log messages with comma-separated  
  38.    Examples below:       list of options.  Dn must be one of info, warn, or  
  39.    --log info,error      error.  Omission of the '=name' results in messages  
  40.    --log warn=0          with the specified level to be logged to the console.  
  41.    --log error=filename  If the parameter is '=0', logging for the specified  
  42.                          level will be turned off.  If the parameter is  
  43.                          '=filename', messages with that level will be written  
  44.                          to filename.  
  45.    -o directory          Save the recovered files to the named directory.  
  46.                          The restored files are created in a directory  
  47.                          named 'RECOVERED_FILES/' by default.  

使用

  1. mount /dev/sdb1 /data  
  2. cd /data  
  3. cp -rf /etc/passwd .  
  4. cp -rf /usr/local/src/extundelete-0.2.4 .  
  5. mkdir test  
  6. echo "extundelete test" > /data/test/mytest.txt  
  7. md5sum passwd  
  8. 499b16cbdef03e814f3405fccd188dcc  passwd  
  9. md5sum test/mytest.txt  
  10. eb42e4b3f953ce00e78e11bf50652a80  test/mytest.txt  
  11. rm -rf *  

查询可恢复的数据信息

  1. extundelete /dev/sdb1 --inode 2  
  2. NOTICE: Extended attributes are not restored.  
  3. Loading filesystem metadata ... 40 groups loaded.  
  4. Group: 0  
  5. Contents of inode 2:  
  6. 0000 | ed 41 00 00 00 10 00 00 af dc 30 56 e0 dc 30 56 | .A........0V..0V  
  7. 0010 | e0 dc 30 56 00 00 00 00 00 00 02 00 08 00 00 00 | ..0V............  
  8. 0020 | 00 00 00 00 0d 00 00 00 61 21 00 00 00 00 00 00 | ........a!......  
  9. 0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  10. 0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  11. 0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  12. 0060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  13. 0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  14. 0080 | 1c 00 00 00 44 dc 7d 52 44 dc 7d 52 a0 ae e6 cf | ....D.}RD.}R....  
  15. 0090 | b7 da 30 56 00 00 00 00 00 00 00 00 00 00 00 00 | ..0V............  
  16. 00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  17. 00b0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  18. 00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  19. 00d0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  20. 00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  21. 00f0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................  
  22.   
  23. Inode is Allocated  
  24. File mode: 16877  
  25. Low 16 bits of Owner Uid: 0  
  26. Size in bytes: 4096  
  27. Access time: 1446042799  
  28. Creation time: 1446042848  
  29. Modification time: 1446042848  
  30. Deletion Time: 0  
  31. Low 16 bits of Group Id: 0  
  32. Links count: 2  
  33. Blocks count: 8  
  34. File flags: 0  
  35. File version (for NFS): 0  
  36. File ACL: 0  
  37. Directory ACL: 0  
  38. Fragment address: 0  
  39. Direct blocks: 8545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0  
  40. Indirect block: 0  
  41. Double indirect block: 0  
  42. Triple indirect block: 0  
  43.   
  44. File name                                       | Inode number | Deleted status  
  45. .                                                 2  
  46. ..                                                2  
  47. passwd                                            11             Deleted  
  48. extundelete-0.2.4                                 131073         Deleted  
  49. test                                              12             Deleted  
  50. test                   &nb
    sp;                          131090         Deleted  

恢复单个文件

  1. # --restore-file 恢复的是相对路径,比如原来的文件路径是/data/passwd,那么在参数后面直接指定 passwd 即可  
  2.   
  3. extundelete /dev/sdb1 --restore-file passwd  
  4. NOTICE: Extended attributes are not restored.  
  5. Loading filesystem metadata ... 40 groups loaded.  
  6. Loading journal descriptors ... 123 descriptors loaded.  
  7. Successfully restored file passwd  
  8. [root@localhost /]# cd RECOVERED_FILES/  
  9. [root@localhost RECOVERED_FILES]# ls  
  10. passwd  
  11.   
  12. md5sum passwd  
  13. 499b16cbdef03e814f3405fccd188dcc  passwd  

恢复单个目录

  1. extundelete /dev/sdb1 --restore-directory /extundelete-0.2.4  
  2. NOTICE: Extended attributes are not restored.  
  3. Loading filesystem metadata ... 40 groups loaded.  
  4. Loading journal descriptors ... 123 descriptors loaded.  
  5. Searching for recoverable inodes in directory /extundelete-0.2.4 ...  
  6. 57 recoverable inodes found.  
  7. Looking through the directory structure for deleted files ...  
  8. 4 recoverable inodes still lost.  
  9.   
  10. ls -al RECOVERED_FILES/  
  11. 总用量 16  
  12. drwxr-xr-x.  3 root root 4096 10月 28 22:43 .  
  13. dr-xr-xr-x. 24 root root 4096 10月 28 22:40 ..  
  14. drwxr-xr-x.  3 root root 4096 10月 28 22:43 extundelete-0.2.4  
  15. -rw-r--r--.  1 root root  856 10月 28 22:40 passwd  

恢复所有误删除数据

  1. extundelete /dev/sdb1 --restore-all  
  2. NOTICE: Extended attributes are not restored.  
  3. Loading filesystem metadata ... 40 groups loaded.  
  4. Loading journal descriptors ... 123 descriptors loaded.  
  5. Searching for recoverable inodes in directory / ...  
  6. 57 recoverable inodes found.  
  7. Looking through the directory structure for deleted files ...  
  8. 0 recoverable inodes still lost.  

恢复某个时间段的数据

  1. #恢复一小时之内的  
  2. date +%s - 3600  
  3. 1446046272-3600  
  4.   
  5. extundelete --after 1446042672 --restore-all /dev/sdb1  

[1]: http://liuhonghe.me/wp-content/uploads/2015/11/1907271058.png
[2]: http://extundelete.sourceforge.net/

» 转载请注明来源:若我若鱼 » 数据恢复软件 extundelete

Leave a Reply

Your email address will not be published. Required fields are marked *

3 × 3 =