首页 > 代码库 > 基于ext4的文件系统删除文件后的恢复方法

基于ext4的文件系统删除文件后的恢复方法

警告:若数据块被覆盖,则无法恢复,第一时间问清楚是什么时候删除的数据,叮嘱不要继续再动了。

  1. 安装恢复软件extundelete
    yum install extundelete -y

  2. 如果是挂载的磁盘请卸载磁盘

    umount -lf /dev/sdb

  3. 从根节点开发扫描,扫描结果如下所示

    extundelete --inode 2 /dev/sda2

    技术分享

  4. 找到被删除文件所在的父目录或祖父目录的号码继续向下扫描(目录的inode号是其目录下面其他文件的开始的inode号,所以以它为基准向下扫描)

    技术分享

  5. 被删除的文件在3306目录,所以继续以3306的inode号为起始扫描

    extundelete --inode 3801090 /dev/sda2

    技术分享

  6. 恢复被删除的文件(执行这条命令前,请cd进入到空间足够的分区,以免恢复造成空间不足)

    extundetele --restore-inode 3801094 /dev/sda2
    技术分享

  7. 文件恢复后存放在执行命令时所在目录下的RECOVERED_FILES目录下,名称已变,建议文件数不多,一个个恢复再改名

    技术分享

    技术分享

  8. 恢复整个文件夹则不用改名,做这步前最好把文件夹中的内容备份到其他地方,以免恢复被覆盖,未测试过

    extundelete /dev/sda2 --restore-directory /data/3306/

    技术分享

  9. 注意事项

    如果是生产环境,上面有其他业务,应该确保在用户访问量最低的半夜进行,恢复需要卸载磁盘,不卸载没有尝试过,主要是有数据还在写入到磁盘,容易出错。

  10. 善后工作

    收回非必要的权限,目录755,文件644,上线代码可用jenkins配合shell,shell拷贝前备份原来的包,如果没有这套最好让运维人员帮助上线,原则上开发人员没有任何权限。顶多给一个启动相关服务,查看相关日志的权限。公司最重要的是制度流程,什么人有什么权限必须要有书面规定,人员要权限也必须有申请记录,以免自己背黑锅!

本文出自 “山大王” 博客,请务必保留此出处http://chenshifei.blog.51cto.com/11883413/1855951

基于ext4的文件系统删除文件后的恢复方法