一、背景
系统管理员,最谨慎的linux就是rm命令了,一不小心数据就没干掉,最恐怖的是数据没有备份,没法还原了,此类事情发生的太多了,针对于此,我们经过多次尝试演练,终于成功的把大部分删除的数据找回来了,下面我把演练过程给大家介绍一下。
二、安装恢复软件
extundelete,该工具官方给出的是可以恢复ext3或者ext4文件系统被删除的文件。
1:通过命令安装
#yum install extundelete -y
2:通过源码编译安装
#yum -y install e2fsprogs-devel e2fsprogs #wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2 #tar -xvjf extundelete-0.2.4.tar.bz2 #cd extundelete-0.2.4 #./configure #make &&make install
三、删除数据查找
首先,我们先删除一个文件,如图:
如上图,我们刚才在/boot目录下删除了个symvers-2.6.32-431.el6.x86_64.gz文件,/boot是落到/dev/sda1下
在Linux下可以通过“ls -id”命令来查看某个文件或者目录的inode值,例如查看根目录的inode值,可以输入:
[root@cloud boot]# ls -id /boot 2 /boot
注:根目录的inode一般为2
然后我们开始查找被删除的文件,需要根据分区inode查找,命令如下:
#extundelete /dev/sda1 --inode 2
结果如下图:
我们就可以看到标识为Deleted的被删除数据了。
四、数据恢复
我们就开始恢复,命令如下:
#extundelete /dev/sda1 --restore-file symvers-2.6.32-431.el6.x86_64.gz
如图:
还原成功
当然,还有可能删除整个文件夹,我们也举个例子,如下:
#extundelete /dev/sda1 --restore-directory test
恢复全部删除数据,如下:
#extundelete /dev/sdb1 --restore-all
也可以通过时间段恢复,这里就不说了,参数如下:
--version, -[vV],显示软件版本号。 --help,显示软件帮助信息。 --superblock,显示超级块信息。 --journal,显示日志信息。 --after dtime,时间参数,表示在某段时间之后被删的文件或目录。 --before dtime,时间参数,表示在某段时间之前被删的文件或目录。 动作(action)有: --inode ino,显示节点“ino”的信息。 --block blk,显示数据块“blk”的信息。 --restore-inode ino[,ino,...],恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名。 --restore-file 'path',恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的RECOVERED_FILES目录中。 --restore-files 'path',恢复命令参数,表示将恢复在路径中已列出的所有文件。 --restore-all,恢复命令参数,表示将尝试恢复所有目录和文件。 -j journal,表示从已经命名的文件中读取扩展日志。 -b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件。 -B blocksize,通过指定数据块大小来打开文件系统,一般用于查看已经知道大小的文件。
五、总结
数据恢复,不一定能全部将数据恢复回来,还是一句话,操作要谨慎。万一操作失误,也不要慌,将损失减少到最小,首先停止所有操作,其次让专业人员去处理。
posted on 2017-12-23 16:11
Alpha 阅读(1959)
评论(0) 编辑 收藏 所属分类:
Linux Nginx