linux恢复误删数据测试

在误删了数据咱们立马要作的操做:不要作任何写入操做,不要作任何保存操做,把所删数据所在的盘卸载(umount),而后以只读方式挂载(mount -o ro),或者是直接用mount -o remount,ro从新挂载。若是提示“device is busy"类的信息,能够用fuser -k -i /mount_point来杀死全部正在使用这个盘的进程(-i是交互模式,会提示)。由于如今系统自动分区的话通常是只把一个分区挂在/目录下,无法再从新挂载,因此要果断关机, 把硬盘挂在另外一个linux系统上进行恢复数据操做。node

 



本例实研环境centos 6.5,要恢复的数据是装unbuntu系统的硬盘的/home/lei下的文件和目录linux

一、在centos 6.5上安装extundelete。

extundelete能够从ext3和ext4文件系统恢复数据的linux工具
最新版本为0.2.4,从extundelete.sourceforge.net下载
为了支持ext4系统,它依赖e2fsprogs-devel开发包1.41以上版本
(e2fsprogs(也叫作e2fs programs)是一个Ext2(及Ext3/4)文件系统工具集(Ext2 Filesystems Utilities[),它包含了诸如建立、修复、配置、调试ext2文件系统等的标准工具。在不一样的linux发行版上它的名字不一样)c++

wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 下载extundelete
yum list e2fsprogs-devel 版本为1.41.12-18.el6 正好知足须要
yum install e2fsprogs-devel 安装 (它依赖同版本号的libcom_err-devel)
tar -jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure 而后报错了,提示让查看config.log,实上不用看,没有安装gcc-c++或者gnu make
yum list gcc-c++ make 显示make 已安装,gcc-c++没有
yum install gcc-c++ 它的依赖文件有一大堆,幸好有yum
./configure 生成Makefile文件
make 编译 (这里提示了一个警告warning: unused parameter "flags",应该没有太大问题)
make install 安装
extundelete -v 显示了版本信息,安装成功ubuntu

二、关机把要恢复数据的盘挂上系统。而后开机,作挂载操做。

(挂载别的硬盘的逻辑卷具体要作的操做些处省略)
mount -o ro /dev/lei-pc/root /mnt # /dev/lei-pc/root是要恢复数据的ubuntu系统的根分区
-o ro 以只读模式挂载centos

三、开始恢复

extundelete /dev/lei-pc/root --restore-directory /mnt/home/lei工具

# extundelete [要恢复的设备文件] --restore-directory [要恢复的目录或文件]
但惋惜的是出错了,错误信息以下
NOTICE: Extended attributes are not restored.
Loading filesystem metadata … 75 groups loaded.
Loading journal descriptors … 29398 descriptors loaded.
Failed to restore file /mnt/home/lei
Could not find correct inode number past inode 287274.
Try altering the filename to one of the entries listed below.
File name | Inode number | Deleted status
extundelete: Operation not permitted while restoring directory.
extundelete: Operation not permitted when trying to examine filesystem测试

再试,不指定具体目录,用--restore-all 恢复全部能恢复的文件
extundelete /dev/lei-pc/root --restore-all 
不像上次那样有不少屏幕输出,有但愿哦
ls 
看到了RECOVERED_FILES,说不定成功了,赶忙进去看看,发如今里边有不少安装日志之类的文本文件,也有home/lei目录,但是进去没有发如今被我删除的文件。从新试了几回,依然是这样。
恢复失败了。.net

四、心有不甘,再试

进入ubuntu系统,从网上下了三张图片,防在桌面上的testonemore文件夹里。而后打开终端输入
rm -rf Desktop/testonemore
sudo mount -o remount,ro /dev/lei-pc/root 想要以只读模式挂载根分区,但提示/“ is busy“”,失败了
sudo poweroff
再次把盘挂在centos下,启动centos
此次我没有把/dev/lei-pc/root挂载到/mnt目录下而是直接开始恢复
extundelete /dev/lei-pc/root --restore-all 
cd RECOVERED_FILES 里边依然有不少日志类文件,但找到了home/lei/Desktop目录,里边有一个名为“Untitled Folder”的文件夹,进去一看是我放的那三张图片。也许此次真的成功了调试

五、测试数据是否已经损坏。

我有一样的三张图片放在/root/testonemore文件夹里,用md5sum看看是否是同样的
md5sum /root/testonemore/pic1.jpg 看到了原文件的md5值
md5sum pic1.jpg 输出的md5值和原文件同样,这些真的恢复成功了。rest

六、总结

第一次之因此不成功,是多是由于我在关机的时候依然有一些保存操做,致使数据被覆盖了,而第二次文件夹名改变也应该是一样的缘由,文件名和牵引节点号错位了,不过运气比较好,问题不大。从此次能够看出,不是误删以后当即中止操做就必定能恢复数据,对于硬盘只有一个根分区的系统来讲,能不能恢复数据,真的要看运气。

相关文章
相关标签/搜索