extundelete
http://extundelete.sourceforge.net/options.html
误删除/usr/share目录
因此考虑恢复目录
过程如下:
1.选用extundelete软件来进行恢复,源码编译安装
[root@84-monitor src]# bunzip2 extundelete-0.2.4.tar.bz2
[root@84-monitor src]# tar xf extundelete-0.2.4.tar
tar -xjf extundelete-0.2.0.tar.bz2
下面这是第一个警告,不予理睬。
[root@84-monitor extundelete-0.2.4]# less README
WARNING: terminal is not fully functional
必须先umount要恢复文件的分区或者把分区改为只读模式,命令:mount –o remout,ro 分区(例如:dev/hda1)或者
mount -n -r -o remount /db 最好尽快将所在分区修改为只读方式,防止数据被覆盖使用。
[root@84-monitor extundelete-0.2.4]# yum install gcc-c++
Traceback (most recent call last):
File "/usr/bin/yum", line 28, in <module>
import yummain
ImportError: No module named yummain
[root@84-monitor extundelete-0.2.4]# ./configure
Configuring extundelete 0.2.4
configure: error: in `/usr/local/src/extundelete-0.2.4':
configure: error: C++ compiler cannot create executables
See `config.log' for more details
[root@84-monitor src]# rpm -ivh libstdc++-devel-4.4.7-11.el6.x86_64.rpm libstdc++-4.4.7-11.el6.x86_64.rpm gcc-c++-4.4.7-11.el6.x86_64.rpm --replacefiles
[root@84-monitor extundelete-0.2.4]# ./configure
Configuring extundelete 0.2.4
configure: error: Can't find ext2fs library
[root@84-monitor packages]# ll
total 964
-rw-r--r--. 1 root root 566700 2014-10-18 04:00 e2fsprogs-1.41.12-21.el6.x86_64.rpm
-rw-r--r--. 1 root root 164100 2014-10-18 04:02 e2fsprogs-devel-1.41.12-21.el6.x86_64.rpm
-rw-r--r--. 1 root root 123728 2014-10-18 04:01 e2fsprogs-libs-1.41.12-21.el6.x86_64.rpm
-rw-r--r--. 1 root root 38088 2014-10-18 04:02 libcom_err-1.41.12-21.el6.x86_64.rpm
-rw-r--r--. 1 root root 33232 2014-10-18 04:01 libcom_err-devel-1.41.12-21.el6.x86_64.rpm
-rw-r--r--. 1 root root 42468 2014-10-18 04:01 libss-1.41.12-21.el6.x86_64.rpm
[root@84-monitor packages]# rpm -ivh * --replacefiles
Preparing... ########################################### [100%]
package libcom_err-1.41.12-21.el6.x86_64 is already installed
package e2fsprogs-libs-1.41.12-21.el6.x86_64 is already installed
package libcom_err-devel-1.41.12-21.el6.x86_64 is already installed
package libss-1.41.12-21.el6.x86_64 is already installed
package e2fsprogs-1.41.12-21.el6.x86_64 is already installed
[root@84-monitor packages]# rpm -ivh e2fsprogs-devel-1.41.12-21.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:e2fsprogs-devel ########################################### [100%]
[root@84-monitor packages]# cd ../extundelete-0.2.4
[root@84-monitor extundelete-0.2.4]# ./configure
Configuring extundelete 0.2.4
Writing generated files to disk
[root@84-monitor extundelete-0.2.4]# make
make -s all-recursive
Making all in src
extundelete.cc:571: warning: unused parameter
You have new mail in /var/spool/mail/root
[root@84-monitor extundelete-0.2.4]# make install
Making install in src
/usr/bin/install -c extundelete '/usr/local/bin'
[root@84-monitor extundelete-0.2.4]# extundelete /dev/mapper/VolGroup-lv_root --inode 651608
[root@84-monitor extundelete-0.2.4]# extundelete /dev/mapper/VolGroup-lv_root --restore-directory /usr/share
NOTICE: Extended attributes are not restored.
WARNING: EXT3_FEATURE_INCOMPAT_RECOVER is set.
The partition should be unmounted to undelete any files without further data loss.
If the partition is not currently mounted, this message indicates
it was improperly unmounted, and you should run fsck before continuing.
If you decide to continue, extundelete may overwrite some of the deleted
files and make recovering those files impossible. You should unmount the
file system and check it with fsck before using extundelete.
Would you like to continue? (y/n)
y
Loading filesystem metadata ... 117 groups loaded.
Loading journal descriptors ... 30051 descriptors loaded.
Searching for recoverable inodes in directory /usr/share ...
1087 recoverable inodes found.
Looking through the directory structure for deleted files ...
Unable to restore inode 656184 (usr/share/policycoreutils-2.0.83): Space has been reallocated.
Unable to restore inode 656716 (usr/share/fuse-2.8.3): Space has been reallocated.
797 recoverable inodes still lost.
[root@84-monitor usr]# pwd
/usr
[root@84-monitor usr]# cp -r /usr/local/src/extundelete-0.2.4/RECOVERED_FILES/usr/share/ ./
拷贝其它系统中的/usr/share/yum-plugins和/usr/share/yum-cli到本系统下,yum就可以用了
[root@84-monitor share]# yum search wget
Traceback (most recent call last):
File "/usr/bin/yum", line 28, in <module>
import yummain
ImportError: No module named yummain
[root@84-monitor share]# cd yum-
yum-3.2.29/ yum-plugin-fastestmirror-1.1.30/
[root@84-monitor src]# cd /usr/share/yum-
yum-3.2.29/ yum-cli/ yum-plugin-fastestmirror-1.1.30/ yum-plugins/
有时候删除了大量的数据量,其中很多数据都是没用的,我们仅需要恢复其中的一部分数据,此时,如果采用恢复全部数据的办法,不但耗时,而且浪费资源,在这种情况下,就需要采用另外的一种恢复机制有选择地恢复,extundelete提供了“—after”“和”--before“参数,可以通过指定某个时间段,进而只恢复这个时间段内的数据。
[root@cloud1 mnt]# extundelete --after 1379146740 --restore-all /dev/sdc1
在数据被误删除后,第一时间要做的是卸载被删除数据所在的磁盘或磁盘分区,如果是系统根分区的数据遭到误删除,就需要将系统进入单用户,并且将根分区以只读模式挂载。这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回力无天。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,以提高恢复数据成功的比率。
2.卸载磁盘分区
在将数据误删除后,立刻需要做的就是卸载这块磁盘分区:
[root@cloud1 data]#cd /mnt
[root@cloud1 mnt]# umount /data
3.查询可恢复的数据信息
通过extundelete命令可以查询/dev/sdc1分区可恢复的数据信息:
[root@cloud1 /]# extundelete /dev/sdc1 --inode 2
在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs、R-Linux、ext3grep、extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复原理基本一样,只是extundelete功能更加强大,本文重点介绍extundelete的使用。
extundelete的恢复原理
在介绍使用extundelete进行恢复数据之前,简单介绍下关于inode的知识。在Linux下可以通过“ls –id”命令来查看某个文件或者目录的inode值,例如查看根目录的inode值,可以输入:
[root@cloud1 ~]# ls -id /
2 /
由此可知,根目录的inode值为2。
在利用extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息(根目录的inode一般为2)来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块,间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。
根分区只读
两块硬盘做了raid0,结果在linux使用过程中(怀疑由于突然断电所致),根分区成了只读,任何写操作都不能执行,ls,df等读操作可以进行,系统也不能在命令行下关机,按电源键强关以后,不能启动。
http://www.ha97.com/5428.html
重启系统后使用root进入单用户模式,运行
fsck.ext3 -y /dev/vda3
说明:ext3的文件系统使用fsck.ext3,ext4文件系统使用fsck.etx4。/dev/vda3是系统/根分区。运行完毕后,reboot重启系统就恢复正常。20多台出问题的都是这样修复的,无失败案例。fsck.ext3开始进入扫描、修正文件系统,这个过程有时很快,有时比较长,中间有数次停顿的过程,只需等待即可,千万不要以为死机而重启服务器。修正完文件系统后,如果没有提示重启系统,也需要reboot来重启系统。
fsck不仅可以对文件系统进行扫描,还能修正文件系统的一些问题。注意的是fsck扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。建议在单用户模式下运行。如果扫描正常运行中的系统,会造成系统文件损坏。
条件许可的话建议文件系统都用ext4,fsck修复文件系统的速度和ext3不是一个等级,T级以上的ext3分区,fsck修复的时间让人崩溃
[root@localhost ~]# mount -o remount, rw /
[root@localhost /]# hdparm /dev/mapper/VolGroup00-LogVol00
那就看下hdparm /dev/sda6 看readonly tag是0/1
手动设定 hdparm -r 0 /dev/sda6
extundelete的更多相关文章
- Linux下数据恢复软件extundelete
extundelete软件专门解决意外删除事件的,有时候不小心 rm -rf * 就可能毁掉有用的数据.因此就出现了这个恢复工具,但这个工具也不是万能的,删除数据后一定要停止所以的写操作.以免Inod ...
- centOS6.4 extundelete工具恢复rm -rf 删除的目录
PS:补充下,我在fedora 19上运行的时候遇到的一个问题: [root@localhost extundelete-]# ./configure Configuring extundelete ...
- 高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件
高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件 只能用于ext3文件系统!!!!!!!高俊峰(高性能Linux ...
- 数据恢复-extundelete
http://extundelete.sourceforge.net/options.html 误删除/usr/share目录因此考虑恢复目录过程如下:1.选用extundelete软件来进行恢复,源 ...
- 源码安装extundelete以及对遇到问题的解决
软件下载:http://sourceforge.net/projects/extundelete/ 1.在安装extundelete包./configure时遇到configure: error: C ...
- Linux下高效数据恢复软件extundelete应用实战
作为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎之又慎,但是有时难免会出现数据被误删除的情况,在这个时候改如何快速.有效地恢复数据呢?本文我们就来介绍一下Linux系统下常用的几 ...
- 用extundelete恢复rm -rf删的文件
“慎用rm -rf命令,除非你知道此命令带来的后果.”这是一条Linux用户守则,虽然大多数用户都明白这条语句的含义,但是我觉得还需要完善一下,为这条语句加 上一个使用前提:在你确认自己拥有清醒头脑, ...
- 【转】文件恢复神器extundelete
参考博文: 1.Linux中VMware虚拟机增加磁盘空间的扩容操作 http://www.net130.com/CMS/Pub/special/special_virtual/special_vir ...
- 数据恢复软件Extundelete
数据恢复软件Extundelete介绍 一.概述 作为一名运维人员,保证数据的安全是根本职责,所以在维护系统的时候,要慎重和细心,但是有时也难免发生出现数据被误删除的情况,这个时候该如何快速.有效地恢 ...
- extundelete教程(完整版)
作者:蒋张裕 Extundelete是在Linux下,基于开源的数据恢复工具.使用阿里云的云服务器 ECS,您可以方便地安装,及时还原误删除的重要文件. extundelete不仅能够通过在文件系统的 ...
随机推荐
- 关于vivado implement后clock interaction报告的理解(更新中)
对于较大工程很难避免遇到CDC问题,vivado自带的分析工具可以报告跨时钟状态. 详情参看手册UG906-Design Analysis and Closure Techniques. (1)关于p ...
- angular2组件通讯的几种方式
最近刚刚接触angular2,对ng2也是一知半解,如有说得不对的地方欢迎指出,欢迎加q共同探讨学习991085978: 1.通过输入型绑定把数据从父组件传到子组件 HeroChildComponen ...
- 5.Python爬虫入门五之URLError异常处理
大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理. 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的 ...
- L298 猴子进化过程
The evolution of monkeys remains a mystery Why monkeys and apes took separate evolutionary paths has ...
- arduino使用oled显示时间MQ_2温湿度
这代码一般都是复制过来,在小改下就行了 代码如下: double Fahrenheit(double celsius) { ; } //摄氏温度度转化为华氏温度 double Kelvin(doubl ...
- vue优势
Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API: 我们都知道单页面应用:页面切换快 ,首屏时间稍慢,SEO差 js 渲染 (多页面应用: 首屏时间快 ...
- python点滴:读取和整合文件夹下的所有文件
当我们想读取一个文件夹下的多个文件,并且将所有文件的内容整合成一个文件,应该怎么做? 基本的思路是:写一个专门的函数实现以上两个功能.主要用到的命令包括os.listdir().codecs.open ...
- jenkins 自动化部署php
0.jenkins配置git部分可查看运维中的maven+jenkins+tomcat自动化部署 1. 安装插件,并设置ssh 安装插件 配置全局SSH配置: 2.创建php部署项目 ① 创建自由 ...
- 【转载】 大龄码农那些事——也谈996.ICU
原文地址: https://www.cnblogs.com/helloyaren/p/10657414.html 请扫码关注!!! 您的关注将是您做的最正确的事情!!! 大龄码农那些事专注分享大龄码农 ...
- 2017-2018-2 20165228 实验三《敏捷开发与XP实践》实验报告
2017-2018-2 20165228 实验三<敏捷开发与XP实践>实验报告 相关知识点 (一)敏捷开发与XP 通过 XP准则来表达: 沟通 :XP认为项目成员之间的沟通是项目成功的关键 ...