随笔-179  评论-666  文章-29  trackbacks-0

一、背景

系统管理员,最谨慎的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 阅读(1832) 评论(0)  编辑  收藏 所属分类: linux nginx
网站地图