参考http://ixdba.blog.51cto.com/2895551/1566856/

为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎之又慎,但是有时难免会出现数据被误删除的情况,在这个时候改如何快速、有效地恢复数据呢?
本文我们就来介绍一下Linux系统下常用的几个数据恢复工具。如何使用“rm -rf”命令在Linux系统下,通过命令“rm -rf”可以将任何数据直接从硬盘删除,并且没有任何提示,同时Linux下也没有与Windows下回收站类似的功能也就意味着,数据在删除后通过常规的手段是无法恢复的,因此使用这个命令要非常慎重。在使用rm命令的时候,比较稳妥的方法是把命令参数放到后面,这样有一个提醒的作用。  其实还有一个方法,那就是将要删除的东西通过mv命令移动到系统下的/tmp目录下,然后写个脚本定期执行清除操作,这样做可以在一定程度上降低误删除数据的危险性。其实保证数据安全最好的方法是做好备份,虽然备份不是万能的,但是没有备份是万万不行的。任何数据恢复工具都有一定局限性,都不能保证完整地恢复出所有数据,  因此,把备份作为核心,把数据恢复工具作为辅助是运维人员必须坚持的一个准则。extundelete与ext3grep的异同在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs、R-Linux、ext3grep、extundelete等,  比较常用的有ext3grep和extundelete,这两个工具的恢复原理基本一样,只是extundelete功能更加强大,本文重点介绍extundelete的使用。extundelete的恢复原理在利用extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息(根目录的inode一般为2)来获得当前文件系统下所有文件的信息,  包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块,间接块等信息。  最后利用dd命令将这些信息备份出来,从而恢复数据文件。

安装extundelete

官网http://extundelete.sourceforge.net/

[root@node85 rpm]# yum install e2fsprogs e2fsprogs-devel e2fsprogs-libs -y    安装依赖包
[root@node85 tools]# tar jxvf extundelete-0.2.4.tar.bz2
[root@node85 tools]# cd extundelete-0.2.4
[root@node85 extundelete-0.2.4]# ./configure
[root@node85 extundelete-0.2.4]# make
[root@node85 extundelete-0.2.4]# make install [root@node85 extundelete-0.2.4]# extundelete --help
Usage: extundelete [options] [--] device-file
Options:--version, -[vV]       显示版本号--help,                显示软件帮助信息--superblock           显示超级快信息--journal              显示日志信息--after dtime          时间参数,表示在某段时间之后被删的文件或目录。--before dtime         时间参数,表示在某段时间之前被删的文件或目录。
Actions:--inode ino            显示节点 'ino'的信息--block blk            显示节点 'blk'的信息--restore-inode ino[,ino,...]  恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名。                        --restore-file 'path'  恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的RECOVERED_FILES目录中。                         --restore-files 'path' 恢复命令参数,表示将恢复在路径中已列出的所有文件。Each filename should be in the same format as an option to --restore-file, and there should be one per line.--restore-directory 'path'Will restore directory 'path'. 'path' is relative to the root directory of the file system.  The restoreddirectory is created in the output directory as 'path'.--restore-all          恢复命令参数,表示将尝试恢复所有目录和文件。-j journal             表示从已经命名的文件中读取扩展日志。-b blocknumber         表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件。-B blocksize           表示使用数据块大小来打开文件系统,一般用于查看已经知道大小的文件。--log 0                Make the program silent.--log filename         Logs all messages to filename.
--log D1=0,D2=filename   Custom control of log messages with comma-separatedExamples below:       list of options.  Dn must be one of info, warn, or--log info,error      error.  Omission of the '=name' results in messages--log warn=0          with the specified level to be logged to the console.--log error=filename  If the parameter is '=0', logging for the specifiedlevel will be turned off.  If the parameter is'=filename', messages with that level will be writtento filename.-o directory          Save the recovered files to the named directory.The restored files are created in a directorynamed 'RECOVERED_FILES/' by default.

实践使用extundlete恢复数据

在数据被误删除后
第一时间要做的是卸载被删除数据所在的磁盘或磁盘分区,如果是系统根分区的数据遭到误删除,就需要将系统进入单用户,并且将根分区以只读模式挂载。mount -o remoun,ro /这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回力无天。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,以提高恢复数据成功的比率。
1、创建模拟数据[root@node85 data]# tree  .  |-- imagick-2.3.0.tgz|-- inotify-tools-3.13.tar.gz|-- ipython-1.2.1.tar.gz|-- lost+found`-- rpm    |-- httpd-2.2.23.tar.gz    |-- httpd-2.2.31.tar.gz    |-- ImageMagick-6.7.9-9.tar.xz    |-- ImageMagick-6.9.6-2.tar.gz    `-- passwd[root@node85 data]# rm -rf /data/*

2.卸载磁盘分区在将数据误删除后,立刻需要做的就是卸载这块磁盘分区:[root@node85 /]# umount /data

3.查询可恢复的数据信息[root@node85 /]# extundelete  /dev/sda5  --inode 2  #显示/dev/sda4分区的文件信息(2为根分区inode值)NOTICE: Extended attributes are not restored.Loading filesystem metadata ... 39 groups loaded.Group: 0Contents of inode 2:0000 | ed 41 00 00 00 04 00 00 27 3e fb 58 cd 3d fb 58 | .A......'>.X.=.X0010 | cd 3d fb 58 00 00 00 00 00 00 02 00 02 00 00 00 | .=.X............0020 | 00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00 | ................0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................0060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

Inode is AllocatedFile mode: 16877Low 16 bits of Owner Uid: 0Size in bytes: 1024Access time: 1492860455Creation time: 1492860365Modification time: 1492860365Deletion Time: 0Low 16 bits of Group Id: 0Links count: 2Blocks count: 2File flags: 0File version (for NFS): 0File ACL: 0Directory ACL: 0Fragment address: 0Direct blocks: 513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0Indirect block: 0Double indirect block: 0Triple indirect block: 0

File name                                       | Inode number | Deleted status.                                                 2..                                                2lost+found                                        11             Deletedhttpd-2.2.23.tar.gz                               12             Deletedhttpd-2.2.31.tar.gz                               13             DeletedImageMagick-6.7.9-9.tar.xz                        6025           DeletedImageMagick-6.9.6-2.tar.gz                        10041          Deletedimagick-2.3.0.tgz                                 18073          Deletedinotify-tools-3.13.tar.gz                         18074          Deletedipython-1.2.1.tar.gz                              18075          Deletedrpm                                               60241          Deleted根据上面的输出,标记为Deleted状态的是已经删除的文件或目录。同时还可以看到每个已删除文件的inode值,接下来就可以恢复文件了。

恢复方法:方法一:通过inode号进行恢复    [root@node85 /]# extundelete /dev/sda5 --restore-inode inode号方法二:通过文件名进行恢复      [root@node85 /]# extundelete /dev/sda5 --restore-file  文件名方法三:通过目录进行恢复        [root@node85 /]# extundelete /dev/sda5 --restore-directory  目录        方法四:恢复所有文件           [root@node85 /]# extundelete /dev/sda5 --restore-all  恢复所有方法五:加时间参数  --after dtime  --before dtime         参数后面跟的时间是个总秒数。起算时间为“1970-01-01 00:00:00 UTC”,通过“date +%s”命令即可将当前时间转换为总秒数,        如果恢复的是一个小时之内的数据,在“date +%s”上减去3600

[root@node85 home]# extundelete /dev/sda5 --restore-inode 12          [root@node85 home]# ls -l RECOVERED_FILES/file.12 -rw-r--r-- 1 root root 7374712 Apr 22 19:46 RECOVERED_FILES/file.12

[root@node85 home]# extundelete /dev/sda5 --restore-file httpd-2.2.31.tar.gz[root@node85 home]# ls RECOVERED_FILES/file.12  httpd-2.2.31.tar.gz

[root@node85 home]# extundelete /dev/sda5 --restore-directory rpm         [root@node85 home]# ls RECOVERED_FILES/file.12  httpd-2.2.31.tar.gz  rpm

[root@node85 home]# rm -rf RECOVERED_FILES/[root@node85 home]# extundelete /dev/sda5 --restore-all[root@node85 home]# ls RECOVERED_FILES/httpd-2.2.23.tar.gz  ImageMagick-6.7.9-9.tar.xz  imagick-2.3.0.tgz          ipython-1.2.1.tar.gzhttpd-2.2.31.tar.gz  ImageMagick-6.9.6-2.tar.gz  inotify-tools-3.13.tar.gz  rpm

转载于:https://www.cnblogs.com/gtms/p/6748958.html

extundelete数据恢复相关推荐

  1. extundelete数据恢复实战!!!

    项目背景: 你误删掉了公司重要的数据,老板说:你妹的!快点给我找回来  还补充了一句:我没钱!!! 试验环境: vmware workstation 11 服务器:centos6.5  ip:192. ...

  2. 数据恢复软件extundelete介绍

    linux下文件系统一般由文件名.Inode.Block三部分组成.当一个用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它的inode,看该用户是否具有访问这个文件的权限.如果有, ...

  3. extundelete安装_Linux数据安全工具:数据恢复软件extundelete概述

    一次性付费进群,长期免费索取教程,没有付费教程. 进微信群回复公众号:微信群:QQ群:460500587  教程列表 见微信公众号底部菜单 |  本文底部有推荐书籍  微信公众号:计算机与网络安全 I ...

  4. extundelete安装_Linux下高效数据恢复软件extundelete应用实战

    作为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎之又慎,但是有时难免会出现数据被误删除的情况,在这个时候改如何快速.有效地恢复数据呢?本文我们就来介绍一下Linux系统下常用的几 ...

  5. ex3 格式化linux,dd、ext3grep、extundelete与linux数据恢复

    一.恢复软件安装问题 现网一台SUSE主机,被同事不小心干掉了一个文件.不过在用想通过ext3grep或extundelete这类工具进行恢复时,发现在编译过程中,总是提示"configur ...

  6. 数据恢复软件extundelete使用

    在Linux系统下,通过命令"rm -rf"可以将任何数据直接从硬盘删除,并且没有任何提示,同时Linux下也没有与Windows下回收站类似的功能,也就意味着,数据在删除后通过常 ...

  7. extundelete实现Linux下文件/文件夹数据恢复!

    我用的是Centos系统,在安装extundelete之前需要安装e2fsprogs,e2fsprogs-libs,e2fsprogs-devel. 这里用:yum install e2fsprogs ...

  8. 数据恢复extundelete安装及简单使用

    一.环境 一台虚拟机:已经安装好 extundelete 的 centos 7 操作系统. 二.内容 使用 extundelete 恢复单个误删文件.单个目录文件和所有误删文件 三.主要步骤 1.安装 ...

  9. 【转】文件恢复神器extundelete

    参考博文: 1.Linux中VMware虚拟机增加磁盘空间的扩容操作 http://www.net130.com/CMS/Pub/special/special_virtual/special_vir ...

  10. linux 误删除mysql表能恢复吗,Linux误删数据恢复

    引子 指在键上飘,难免会湿手套.当你按下shift+del键后,会不会突然心里凉透,当你执行rm -rf后,会不会马上去搜索哪个国家入境不需要签证.或者你还会遇到如下的情况: root@4xem7:~ ...

最新文章

  1. Linux ps命令详解与示例说明
  2. 【系统平台】大四区部署
  3. mongodb 搜索速度_初识 MongoDB 数据库
  4. 原 BinaryWriter和BinaryReader(二进制文件的读写)
  5. 学习就是一件要耐的住寂寞放的下欲望舍的得享乐的事
  6. uv4:you are not logged in as an administrator
  7. 苹果成为存储厂商的新饽饽
  8. input和raw_input的区别
  9. PS使用技巧(五) 形状工具 U
  10. 扩展卡尔曼滤波算法——基本原理及举例(python实现radar数据滤波)
  11. 正确认识计算机专业,如何正确认识计算机科学与技术专业
  12. 游戏公司游戏策划面试笔记
  13. python——遥感影像分块
  14. 电脑控制手机,无需Root、无线连接,免费开源跨平台的scrcpy比其他收费软件还好用!
  15. 李沐d2l《动手学深度学习》第二版——风格迁移源码详解
  16. CLIENT_ACKNOWLEDGE机制测试
  17. 开关电源的EMC整改实例
  18. lftp下载文件无法覆盖,提示 file already existst and xfer:clobber is unset 问题解决
  19. 轻量级Qt键盘-实现篇
  20. 一起看TV:在电视上怎么下载软件?两个办法教你有效安装

热门文章

  1. 关于突然不能上网的问题的解决
  2. scrapy 处理动态加载,使用phantomjs
  3. ZooKeeper原生java客户端使用
  4. hive insert into语句 和 insert overwrite语句
  5. Android Cloud to Device Messaging 服务介绍 – 如何使用云计算推送消息到手机(转载)...
  6. Linux爆本地提权漏洞 请立即更新udev程序
  7. VSCode使用记录四:Ubuntu终端启动报错以及Ubuntu查看修改文件夹权限
  8. 波形分析--串口数据
  9. idea修改项目编码
  10. 普通用户使用docker命令