您的位置:首页 > 运维架构 > Linux

Linux 误删文件

2015-06-24 16:27 411 查看
又误删文件了,这次还删除的是别人的文件,上次是删除了自己那么长时间写的代码,rm –rf再也不敢乱用了,教训就是重要的数据一定要备份,备份啊!!!

         以后删除文件,rm –f 宁愿多敲几个y。

         运气还好,恢复了大部分文件,扩展属性貌似不能恢复,还丢失了一个文件。后来发现,恢复过来的文件其实是有一些是乱码的。

1.      恢复过程

我是按照参考[1]中的步骤一步一步来的,还好成了,工具是exundelete,对应恢复整个盘的数据还是比较有效的。

Linux下执行 rm 并不会真正删除,而是将inode节点中的扇区删除,同时释放数据块。在数据块被系统重新分配前,这部分数据还是可以找回来的。

 

网上说在删除文件后要立即unmount这个分区,这样做其实是为了让外界不再写入,我们也可以设置为readonly模式代替。当然,如果为了不影响其它应用的运行,也可以不做unmount。

 

好的,现在就该神器extundelete上场了。以CentOS6.5为例

 

依赖

 

yum -y install e2fsprogs e2fsprogs-libse2fsprogs-devel

安装

 

wgethttp://jaist.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

tar jxvf extundelete-0.2.4.tar.bz2

cd extundelte-0.2.4

./configure

make; make install

查找要恢复的驱动器名

 

df

 

Filesystem             1K-blocks     Used  Available Use% Mounted on

/dev/sda1                 495844    64150     406094  14% /boot

运行恢复

 

默认恢复到当前目录下的RECOVERED_FILES目录中去

 

恢复单个文件

 

extundelete /dev/sdb1 --restore-file hosts

恢复一个目录

 

extundelete /dev/sdb1 --restore-files test/

恢复整个分区

 

extundelete /dev/sdb1 –-restore-all

这个工具貌似支持EXT4文件系统,经过实际测试,restore-all比较好用,在初次删除后可以很好的恢复文件及目录结构,但是如果我在相同位置新建了相同的文件名或者目录名,就会恢复失败(找不到了)。而恢复单独的文件或者目录则没有成功,如果有成功的可以告诉我。

应用总结:笔者在现实使用过程中发现 extundelete 还是有很大的不完整性,基于整个磁盘的恢复功能较为强大,基于目录和文件的恢复还不够强大。

2.      参考博客

[1] http://my.oschina.net/looly/blog/261912#OSC_h4_1
[2] http://www.ibm.com/developerworks/cn/linux/1312_caoyq_linuxrestore/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: