转载于互联网并适当的修改

误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~

说在前面的话

针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收站,删除后的文件可以到垃圾箱寻回,要知道linux文件修复比较费劲,网络上面的文档也是五花八门。所以本次研究一种比较靠谱的文件和目录恢复方法,也给维护人员留一条后路。

分析对比debugfs. testdisk 6.14. extundelete,对比各自官网介绍和操作说明本次决定研究extundelete对文件和目录的恢复操作。

extundelete下载官网地址:

Linux下文件误删除,使用extundelete恢复测试过程

给虚拟主机添加一块磁盘,磁盘为/dev/sdb,如下:

格式化磁盘,并进行挂载

# mkfs.ext4 /dev/sdb# mkdir /usr/local/dbdata/# mount /dev/sdb /usr/local/dbdata/

测试误操作删除以下文件

/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

将误操作所在分区进行只读保护

如果确定文件被误删,在没有备份的情况下请马上对分区实施写入保护(预防新的写入覆盖误删的块数据,因此权限给只读):

# mount -o remount,ro /dev/sdb # mount -o remount,ro /usr/local/dbdata/

数据恢复工具安装

工具安装部署

官方网站是 ,其目前的稳定版本是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

文件恢复过程

恢复指定文件:

原理:从根节点(inode=2)开始找到被删除文件的i节点,然后recover i节点。

以下是模拟删除gperftools-2.4.tar.gz(文件)和pcre-8.32 (目录)

先检测被删除的文件有哪些:

# extundelete /dev/sdb --inode 2

从圈出来的可以看到,有以下两个

gperftools-2.4.tar.gz 15 Deletedpcre-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、建议使用ext3的文件系统,当前extundelete 对ext4支持不是很好

2、删除文件时不要带r  如:rm-rf ,删除目录时不要带f 如rm -rf . 恢复才会准确  

3、删除建议卸载挂载,,,不建议使用只读

4、使用rm一定要谨慎

5、磁盘按照功能进行分区是必要的

6、最少掌握一种数据恢复方式

误删除 linux 系统文件了?这个方法教你解决的更多相关文章

  1. Linux系统文件和目录管理

    Linux系统文件和目录管理 相关命令的解析 1.pwd:显示用户当前的工作目录 2.ls: -a:显示所有文件,包括隐藏文件 -l:显示文件的详细信息 3.设备文件统一存放在/dev 设备文件 块设 ...

  2. Linux系统文件与启动流程

    Linux系统文件与启动流程 /etc初始化系统重要文件 /etc/sysconfig/network-scripts/ifcfg-eth0:网卡配置文件 /etc/resolv.conf:Linux ...

  3. linux系统文件说明

    linux系统文件说明 bin 系统命令目录 dev 设备目录 home 用户的家(每个系统用户在home下都有一个自己家) root超级用户在根目录下 lib 系统库目录.so动态库文件 media ...

  4. 嵌入式linux应用程序移植方法总结

    嵌入式linux应用程序移植方法总结 前段时间一直在做openCapwap的移植和调试工作,现在工作已接近尾声,编写本文档对前段工作进行一个总结,分享下openCapwap移植过程中的经验和感悟.江浩 ...

  5. 1008win7与虚拟机中的linux共享文件的(详细)方法

    转自http://jingyan.baidu.com/article/ca00d56c74dde4e99eebcfd2.html 好东西一起分享 win7与虚拟机中的linux共享文件的(详细)方法 ...

  6. Linux启动ftp服务器530 Permission denied解决方法(已试,行)

    Linux启动ftp服务器530 Permission denied解决方法重新在虚拟机下安装了linux.现在我想启动linux自带的ftp服务器:#service  vsftpd  start . ...

  7. Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码

    Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码 文/玄魂 目录 Kali Linux Web 渗透测试视频教—第二十课-利用 ...

  8. 修改linux系统时间的方法(date命令)

    修改linux系统时间的方法(date命令) 来源:互联网 作者:佚名 时间:11-18 23:22:27 [大 中 小] date命令不仅可以显示系统当前时间,还可以用它来修改系统时间,下面简单的介 ...

  9. Linux下软件安装方法即路径设置

    Linux下软件安装方法即路径设置 http://www.cnblogs.com/edward259/archive/2010/07/02/1770066.html

随机推荐

  1. Java开发23种设计模式之禅

    六大原则 23种设计模式: 总体来说设计模式分为三大类: *创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. *结构型模式,共七种:适配器模式.装饰器模式.代理模式.外 ...

  2. Kruskal算法-HDU1863畅通工程

    链接 [http://acm.hdu.edu.cn/showproblem.php?pid=1863] 题意 Problem Description 省政府"畅通工程"的目标是使全 ...

  3. MSF MS11-050/10-087/Adobe攻击实践及内存保护技术

    MSF MS11-050/10-087/Adobe攻击实践及内存保护技术 内存攻击指的是攻击者利用软件安全漏洞,构造恶意输入导致软件在处理输入数据时出现非预期错误,将输入数据写入内存中的某些特定敏感位 ...

  4. 结对项目 https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1

    所选项目名称:文本替换      结对人:傅艺伟 github地址 : https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1 用一个新字 ...

  5. jQuery中empty与html("")的区别对比

    简单的说empty,首先循环给后代元素移除绑定(释放内存).清除jquery给此dom的cache,然后循环removeFirstChild,而html(''),则是简单暴力的设置innerHTML ...

  6. Java 中文 乱码问题

    Java平台遇到的两类问题: 1.源代码中文乱码问题: a.Java文件,中文乱码,配置IDE的Preference的编码格式,总有一款适合你. b.HTML(JSP.....)文件,中文乱码,添加并 ...

  7. [CB]2018全球半导体营收4700亿美元 三星继续碾压英特尔

    2018全球半导体营收4700亿美元 三星继续碾压英特尔 https://www.cnbeta.com/articles/tech/808833.htm Gartner最新报告显示,2018年全球半导 ...

  8. Linux shell 菜鸟学习笔记....

    20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的 ...

  9. 修改VCL源码实现自定义输入对话框

    来自:https://yq.aliyun.com/wenji/88428 通过修改VCL源码实现自定义输入对话框 在BCB中有两个函数可以实现输入对话框:InputBox和InputQuery,其实I ...

  10. 谷歌pixel手机解BL锁、刷机、破解电信(史上最详细的帖子)

    本文根据网上已有内容进行整理,对每一个步骤都进行了实践,运气爆棚,几乎没有出现什么重大错误,小错误也进行了很好地解决.因此,十分感激那些为折腾google pixel的IT爱好者,为我提供了无穷的帮助 ...