2012年(28)
分类: 服务器与存储
2012-04-28 22:03:42
在EXT3文件系统下用ext3grep软件恢复被误删的数据
操作系统:Red Hat Enterprise Linux Server release 6.1
所需软件:
ext3grep-0.10.2.tar.gz
e2fsprogs-1.41.12-7.el6.i686
安装ext3grep-0.10.2.tar.gz软件:
tar –zxvf ext3grep-0.10.2.tar.gz
cd ext3grep-0.10.2
./configure
make
make install
安装e2fsprogs-1.41.12-7.el6.i686:
这里我在本机上已经搭建好与ISO的yum,所以就直接
yun install e2fsprogs*
开始挂硬盘,因为我本机上有一块空的分区/dev/sdb5,所以我就用这个分区了。
先对/dev/sdb5进行格式化分区:mkfs.ext3 /dev/sdb5
然后mount /dev/sdb5 /mnt/disk1/,并在/mnt/disk1下创建文件或者文件夹,例如:
我们开始删除里面的清空该挂载目录下的全部内容,进入挂载目录中,然后执行命令
rm –rf * (一定要进入挂载目录中执行)
此时我的目录已经空了,然后cd ..到上层目录中,因为当我们执行rm –rf *时,没有将文件所占用磁盘的block给删除,如果我们往磁盘中写内容会把误删的文件的block给覆盖掉,导致文件无法恢复。
到上层目录后,执行
其中—inode 2,代表从分区的根目录下开始索引,执行完这个命令后会显示出
或者可以执行命令ext3grep /dev/sdb5 --ls --inode 2 –delete 直接查看被删除的文件或者文件夹。
表格中Dleteion time这一栏有内容的就是被删除的文件或者文件夹。
这时你会发现在当前目录下会产生2个文件,我的是
这里面显示的是磁盘里文件系统的信息,主要是inode
现在开始恢复数据:
例如,我们想恢复a文件
ext3grep /dev/sdb5 --restore-file a
此时你会发现在当前目录下会产生一个RESTORED_FILES的文件夹,这个文件夹的作用是将恢复的文件存在该文件夹中。、
如果想恢复目录的话,现在找到的方法是
会在RESTORE_FILES文件夹中产生一个inode.77281的文件夹,但是只恢复了文件夹
如果想恢复文件夹里面的,先执行
显示出该文件夹下被删除的内容。
然后执行
然后手动的放到该目录中并改名。
如果一次性全部恢复,执行
然后将RESTORE_FILES文件夹中的内容,复制到挂载分区中。
然后下次做数据恢复时记得把上次产生的文件和文件夹删掉。
今天网络不行,下次查询下不同文件系统的数据恢复。还有就是不知道如何整个目录树进行恢复。