在Linux下误删文件后恢复【转】
针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收站,删除后的文件可以到垃圾箱寻回,要知道linux文件修复比较费劲,网络上面的文档也是五花八门。所以本次研究一种比较靠谱的文件和目录恢复方法,也给维护人员留一条后路。
分析对比debugfs、testdisk 6.14、extundelete,对比各自官网介绍和操作说明本次决定研究extundelete对文件和目录的恢复操作。
extundelete下载官网地址:https://pkgs.org/download/extundelete

Linux下文件误删除,使用extundelete恢复测试过程
1、给虚拟主机添加一块磁盘,磁盘为/dev/sdb,如下:
2、格式化磁盘,并进行挂载
# mkfs.ext4 /dev/sdb
# mkdir /usr/local/dbdata/
# mount /dev/sdb /usr/local/dbdata/
3、测试误操作删除以下文件
/usr/local/dbdata/gperftools-2.4.tar.gz #文件
/usr/local/dbdata/pcre-8.32 #目录
执行误操作:
# rm -rf /usr/local/dbdata/gperftools-2.4.tar.gz /usr/local/dbdata/pcre-8.32
4、将误操作所在分区进行只读保护
如果确定文件被误删,在没有备份的情况下请马上对分区实施写入保护(预防新的写入覆盖误删的块数据,因此权限给只读):
# mount -o remount,ro /dev/sdb
# mount -o remount,ro /usr/local/dbdata/
5、数据恢复工具安装
工具安装部署
官方网站是http://extundelete.sourceforge.net/ ,其目前的稳定版本是extundelete-0.2.4.
工具下载
# wget https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
解压按装
依赖包
# yum -y install gcc-c++ e2fsprogs.x86_64 e2fsprogs-devel.x86_64
# tar -jxvf extundelete-0.2.4.tar.bz2
# cd extundelete-0.2.4
# ./configure
# make && make install
验证安装结果
# extundelete -v
6、文件恢复过程
恢复指定文件:
原理:从根节点(inode=2)开始找到被删除文件的i节点,然后recover i节点。
以下是模拟删除gperftools-2.4.tar.gz(文件)和pcre-8.32 (目录)
先检测被删除的文件有哪些:
# extundelete /dev/sdb --inode 2
从圈出来的可以看到,有以下两个
gperftools-2.4.tar.gz 15 Deleted
pcre-8.32 655361 Deleted
注意:恢复过程不要在误删分区进行,谨防inode、block块相互覆盖
先恢复文件(可根据文件名进行恢复):
# extundelete /dev/sdb --restore-file gperftools-2.4.tar.gz
恢复目录(根据目录名恢复):
# extundelete /dev/sdb --restore-directory pcre-8.32
最后会在当前目录下看到一个名为RECOVERED_FILES的目录,在目录里就可以看到被误删除的文件以及目录:
说在后面的话
根据上面操作证明extundelete 工具可以实现对误删数据的恢复,而且操作简单。
总结:
1、使用rm一定要谨慎
2、磁盘按照功能进行分区是必要的
3、最少掌握一种数据恢复方式
本文来自 运维人生 转载请注明;
本文地址:http://www.ywadmin.com/?id=76
在Linux下误删文件后恢复【转】的更多相关文章
- Linux误删文件后恢复数据
在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs.R-Linux.ext3grep.extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复 ...
- Linux下误删文件恢复办法
恢复删除的文件 当误删除文件时,如果还有程序对此文件进行操作,那么可以通过lsof 命令恢复文件内容. 举例: 误删粗messages日志文件 [root@cdn ~]# cat /var/log/m ...
- linux下误删数据文件恢复
linux下文件被删除能够用非常多工具进行恢复.比如undelete(适合ext2,ext3).giis(不能恢复安装giis之前的文件).ext3grep(仅限ext3).R-linux(支持ext ...
- Linux回收站(改写rm防止误删文件无法恢复)
rm -rf 慎用 命令敲得多了,常在河边走,难免会湿鞋 昨天,一个手误,敲错了命令,把原本想要留的文件夹给rm -rf掉了 几天心血全木有了,靠,死的心都有了 经百度,google以及尝试无果,哎, ...
- linux下各文件夹的结构说明及用途介绍
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /ho ...
- 【转】linux下各文件夹的结构说明及用途介绍
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...
- Linux下各文件夹的结构说明及用途介绍(转载)
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...
- linux下各文件夹的结构说明及用途介绍:Linux目录结构介绍
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...
- Linux下的文件及文件后缀名
Linux下的文件及文件后缀名 2013-03-14 15:34 6969人阅读 评论(0) 收藏 举报 ++++++++++++++++++++++++++++++++++++++正文+++++++ ...
随机推荐
- SpringMvc的基本流程
1.流程图 2.特别说明 1)SpringMvc有6大组件(MVC各一个,再加3个运用策略模式的组件) 2)MVC对应的组件分别是(Handler.View.DisapatchServelet) 3) ...
- 当php邂逅windows通用上传缺陷
早上逛乌云发现了PKAV大牛的一篇文章,针对php和windows文件上传的分析,思路很YD,果断转之与大家分享. 虽然此文可能有许多的限制条件,但是如果你认真阅读会发现,其实还是比较实用的. 另外一 ...
- HDU 1024(新最大子序列和 DP)
题意是要在一段数列中求 m 段互不重合的子数列的最大和. 动态规划,用数组 num[ ] 存储所给数列,建二维数组 dp[ ][ ] , dp[ i ][ j ] 表示当选择了第 j 个数字( num ...
- Part-Six
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
- StringBuilder类
java.lang.StringBuilder String类代表字符串,他的底层是一个被final修饰的数组,不能改变,字符串是常量,它们的值一旦被创建之后就不能改变,但是字符串缓冲区(String ...
- ThinkJS 开发node后端 使用 简介
ThinkJS 是一款面向未来开发的 Node.js 框架,整合了大量的项目最佳实践,让企业级开发变得如此简单.高效.从 3.0 开始,框架底层基于 Koa 2.x 实现,兼容 Koa 的所有功能. ...
- MyList 泛型委托
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
- luogu P3250 [HNOI2016]网络
传送门 考虑只有一个询问,怎么使用暴力枚举最快的得到答案.因为要求最大的,所以可以把链按权值从大往小排序,然后往后扫,找到一个没有交的就是答案,直接退出 一堆询问,可以考虑整体二分,先二分一个值\(m ...
- Kaldi的BaseLine训练过程
steps/train_mono.sh --nj "$train_nj" --cmd "$train_cmd" data/train data/lang exp ...
- centos7 五大查找常用命令
1.find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> ...