linux下误删目录文件后恢复神器extundelete
原文链接:https://blog.51cto.com/wzlinux/2052835参考:https://blog.csdn.net/cwg_1992/article/details/46310055? 一、背景突发事件,应用上传的数据被程序自动删掉了,可悲的是还没有数据备份,数据是放在系统的 /data/webapps/xxxx/upload 目录下面,可把我们急坏了,之前又没有做过数据恢复的测试,然后我找到了一款数据恢复的软件,成功把删除的大部分数据找回来了,我的数据恢复过程如下。 二、安装恢复软件1、epel 仓库安装如果我们的源里面添加了 epel 仓库的话,我们可以直接使用下面的命令安装。 yum?install?extundelete?-y 2、源码编译安装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 三、删除数据查找
如何查看inode
使用ls -lia 目标目录
命令简介 l参数为了方便对应文件和inode关系,人性化的现实,i参数则为显示文件的inode,a参数为列出本目录下索引的文件,包括隐藏的
注意:如果是根目录要看自己的inode,那么就必须用a参数,因为在根目录下,它本身的名字叫".",如果不加a参数是列不出来的
? 因为我的数据路径比较深,所以我们需要一步步查找,可以先从根分区 inode 查找 extundelete?/dev/sdb1?--inode?2 我们会看到 weapps 目录的inode, extundelete?/dev/sda5?--inode?24641537 我们看到项目的 inode, extundelete?/dev/sda5?--inode?24903688 我们找到了最终删除数据的目录 upload extundelete?/dev/sda5?--inode?24904454 我们可以看到标称的 Deleted,这些数据就是我们要进行恢复的数据。 四、数据恢复那我们就恢复指定目录,以当前分区为根分区进行路径设定,项目名进行掩盖 extundelete?/dev/sda5?--restore-directory?/webapps/xxxx/upload 因为磁盘数据一直在读写,所以有些文件之前的 inode 已经被重新分配了,导致部分数据无法恢复,数据最后会告诉我们有多少文件没有回复,但是大部分数据我们已经恢复了,这就是很重要的事情了。 那我们查看一下回复的数据吧,软件会在当前目录生成一个目录 RECOVERED_FILES 里面就是我们恢复的数据。 恢复全部数据可以使用命令 extundelete?/dev/sda5?--restore-all 使用方法extundelete --help
在数据删除之后,首先要卸载被删除数据所在的磁盘或是分区,如果是系统根分区遭到误删除,就需要进入单用户模式下,将根分区以只读的方式挂载。 原因:因为文件删除之后,仅仅是将文件的inode节点中的扇区指针清零,实际上文件还存在磁盘上面,如果磁盘以读写方式挂载,这些删除的数据块可能会被系统从新分配出去,这些数据块被覆盖之后,这些数据就真的丢失了,所以以只读的方式挂载,尽可能避免数据被覆盖。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 内存不足的内核(3.2.0)恐慌(Debian 7.3)即使攻击过
- linux – 使用GCC和埃及生成全面的调用图
- samba – 通过linux中的命令行在网络上列出可用的smb共享
- linux – autoenv无法在Windows 7上运行
- Linux:创建随机目录/文件层次结构
- 测试工作中经常用到的一丢Linux命令
- Linux Mono等效的.NET Windows服务
- dhcp – 通过tcpdump在数据包捕获(Linux)中未显示VLAN标记
- 卷曲选项等同于Net.Webclient的“useDefaultCredentials”
- linux-kernel – 用户空间进程中的Linux内核模块信号被杀死