linux盘整数据误删恢复,linux恢复误删数据测试

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

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

1、在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发行版上它的名字不同)

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 显示了版本信息,安装成功

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

(挂载别的硬盘的逻辑卷具体要做的操作些处省略)

mount -o ro /dev/lei-pc/root /mnt # /dev/lei-pc/root是要恢复数据的ubuntu系统的根分区

-o ro 以只读模式挂载

3、开始恢复

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目录,可是进去没有发现在被我删除的文件。重新试了几次,依然是这样。

恢复失败了。

4、心有不甘,再试

进入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”的文件夹,进去一看是我放的那三张图片。也许这次真的成功了

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

我有同样的三张图片放在/root/testonemore文件夹里,用md5sum看看是不是一样的

md5sum /root/testonemore/pic1.jpg 看到了原文件的md5值

md5sum pic1.jpg 输出的md5值和原文件一样,这些真的恢复成功了。

6、总结

第一次之所以不成功,是可能是因为我在关机的时候依然有一些保存操作,导致数据被覆盖了,而第二次文件夹名改变也应该是同样的原因,文件名和牵引节点号错位了,不过运气比较好,问题不大。

从这次可以看出,不是误删之后立即停止操作就一定能恢复数据,对于硬盘只有一个根分区的系统来说,能不能恢复数据,真的要看运气。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值