• 误删文件后如何恢复数据


    本文档主要以CentOS7操作系统为例,介绍如何使用开源工具Extundelete快速恢复被误删除掉的数据。

    Extundelete能够利用inode信息结合日志去查询该inode所在的block位置,以次来查找和恢复所需的数据,该工具最给力的一点就是支持ext3/ext4双格式分区恢复,基于整个磁盘的恢复功能较为强大。

    在数据被误删除后,第一时间要做的是卸载被删除数据所在的磁盘或磁盘分区。因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回力无天。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,以提高恢复数据成功的几率。说明 在实际线上恢复过程中,切勿将extundelete安装到您误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖,切记操作前做好快照备份。

    适用对象

    • 磁盘中文件误删除的用户,且未对磁盘进行过写入等操作
    • 网站访问量小、少量 实例的用户

    使用方法

    • 部署extundelete工具

       
      wget  http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2
      yum -y install  bzip2  e2fsprogs-devel  e2fsprogs  gcc-c++  make    #安装相关依赖和库
      tar -xvjf extundelete-0.2.4.tar.bz2
      cd extundelete-0.2.4                                #进入程序目录
      ./configure                                         #如下图表示安装成功


       
      make && make install

      这个时候会出现src目录,下面有个extundelete可执行文件以及相应路径,如下图,其实默认文件安装在usr/local/bin下面,下面演示就在usr/local/bin目录下。

    • 使用extundelete,模拟数据误删除然后恢复的过程

      1. 检查ECS现有的磁盘和可用分区,并对/dev/vdb进行分区,格式化
         
        fdisk -l

      2. 将分区后的磁盘挂载到/zhuyun目录下,然后在/zhuyun下面新建测试文件hello,写入test。
         
        mkdir /zhuyun                                #新建zhuyun目录
        mount /dev/vdb1 /zhuyun                      #将磁盘挂载到zhuyun目录下
        echo test > hello                            #写入测试文件
      3. 记录文件MD5值,md5sum命令用于生成和校验删除前和恢复后俩个文件的md5值。
         
        md5sum hello

      4. 模拟删除hello文件。
         
        rm -rf hello
        cd ~
        fuser -k /zhuyun                     #结束使用某分区的进程树(确认没有资源占用的话,可以跳过此步)
      5. 卸载数据盘。
         
        umount /dev/vdb1                     #任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用
      6. 使用Extundelete工具恢复文件。
         
        extundelete --inode 2 /dev/vdb1       #为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode


         
        /usr/local/bin/extundelete  --restore-inode 12  /dev/vdb1    #恢复删除的文件

        这个时候会在执行命令的同级目录下出现RECOVERED_FILES目录,查看是否恢复。



        通过md5值查看,前后俩个文件,一样说明恢复成功。

         
        --restore-inode 12                  # --restore-inode 按指定的I节点恢复
        --extundelete --restore-all         # --restore-all   全部恢复
  • 相关阅读:
    面向对象
    PIL库学习及运用
    Jieba库使用和好玩的词云
    Python汉诺塔问题
    用python计算圆周率PI
    使用python画一只佩奇
    面向对象与正则表达式的学习
    美白,磨皮,搞笑图片处理
    tuetle制作汉诺塔
    python圆周率的计算及进度条提示
  • 原文地址:https://www.cnblogs.com/kcxg/p/10966166.html
Copyright © 2020-2023  润新知