Linux 下重要文件被删除?我有妙招

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

说在前面的话

针对平常维护操做,不免会出现文件误删除的操做。你们熟知linux文件系统不一样win有回收站,删除后的文件能够到垃圾箱寻回,要知道linux文件修复比较费劲,网络上面的文档也是五花八门。因此本次研究一种比较靠谱的文件和目录恢复方法,也给维护人员留一条后路。node

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

extundelete下载官网地址:https://pkgs.org/download/extundelete
c++

0481ec50243044591dd27e7fa3a71f31.jpeg

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

  1. 给虚拟主机添加一块磁盘,磁盘为/dev/sdb,以下:
    1ee61e95644abd852e27047514b479d7.jpeg网络

  2. 格式化磁盘,并进行挂载app

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

    f8678faa9f577f62f8056132b7ccc8ae.jpeg

  3. 测试误操做删除如下文件运维

    /usr/local/dbdata/gperftools-2.4.tar.gz #文件
    
    /usr/local/dbdata/pcre-8.32 #目录

    执行误操做:ide

    # 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

    be3396c6fa2db9f911d5aea4d59b93dd.jpeg

    从圈出来的能够看到,有如下两个

    gperftools-2.4.tar.gz 15 Deleted
    
    pcre-8.32 655361 Deleted

    注意:恢复过程不要在误删分区进行,谨防inode. block块相互覆盖

    先恢复文件(可根据文件名进行恢复):

    # extundelete /dev/sdb --restore-file gperftools-2.4.tar.gz

    bfffb6a47a0efa5060de5e04bf6ddc5b.jpeg

    恢复目录(根据目录名恢复):

    # extundelete /dev/sdb --restore-directory pcre-8.32

    681063e68517e950d2dea8fd0521947f.jpeg

    最后会在当前目录下看到一个名为RECOVERED_FILES的目录,在目录里就能够看到被误删除的文件以及目录:

    说在后面的话

    4fd38224c2e02e013585e5be04e8732a.jpeg

    根据上面操做证实extundelete 工具能够实现对误删数据的恢复,并且操做简单。

总结:

  1. 使用rm必定要谨慎

  2. 磁盘按照功能进行分区是必要的

  3. 最少掌握一种数据恢复方式

本文来自 运维人生 转载请注明;本文地址:http://www.ywadmin.com/?id=76

相关文章
相关标签/搜索