admin@80vps.com
联系我们
QQ:1668121212
CN
Cn
En
邮件订阅
服务条款
优惠促销
会员中心
Toggle navigation
站群服务器
香港站群
美国站群
日本站群
韩国站群
新加坡站群
国内云主机
景安多线
四川双线云主机
上海电信
华为云
香港服务器
香港Cera高防
香港PowerLine
香港Pangnet
香港BGP大带宽
沙田大带宽
香港九龙
香港大浦
亚太服务器
越南服务器
韩国优化
韩国首尔
日本CIA
日本CN2
日本精品
新加坡
欧美及高防
洛杉矶MC
凤凰城IF
洛杉矶Cera高防
洛杉矶SK高防
VPS主机
亚太VPS列表
新加坡SG
日本CTG
香港CTG
韩国BGP
香港CI
欧美VPS列表
美国Cera
美国MC
帮助中心
账户管理
用户注册
登录验证
购买结算
充值汇款
新购续费
退款处理
VPS购买及使用
常用下载
VPS云服务器介绍
用户操作指南
Linux操作指南
Windows操作指南
产品介绍
常用下载
PHP源码
ASP源码
在线工具
推广
本月特价
用ext3grep恢复rm -rf 误删除的文件
浏览次数:2890 关键词 (
文件
误删除
ext3grep
rm
)
Linux作为企业级服务器,数据安全性至关重要,任何有价值的数据被误删除都是不能容忍的,甚至可能带来大的灾难!作为linux系统管理员,一定要有数据保护意思,不但要做好数据备份工作,还应该有在将重要数据误删除后恢复的能力.在这里给大家介绍一个开源的数据恢复工具ext3grep,该工具可以恢复rm –rf误删除的文件
一、ext3grep的原理:
利用ext3grep恢复文件并不依赖于任何文件格式,首先ext3grep利用root的inode来获取文件系统中所有的文件信息,包括存在的或已删除的文件,这些信息包括文件名、inode号、然后利用inode结合系统日志去查询该inode所在的block位置,包括直接、间接块的信息,最后用dd命令来将数据信息备份出来,从而恢复数据!
当发现文件被误删除后,首先做的第一件事就是马上卸载该文件所在的分区,或者以只读的方式挂载该分区,原因是文件被删除后,文件内的数据还保留在磁盘上,除非系统将这些数据所在的块分配出去了,要不然一直都会存在,所以为了保险,首先做的事就是卸载文件所在的分区,
至于根分区的话,可以重启系统,然后以单用户模式进入系统,以只读的方式挂载根分区:
mount –o ro,remount /
二、ext3grep安装
在安装之前首先检查一下系统是否已安装e2fsprogs相关软件,如果没有需要下载安装,要不然安装ext3greep时会报错!
[root@localhost ~]# rpm -qa|grep e2fs
e2fsprogs-devel-1.39-23.el5_5.1
e2fsprogs-libs-1.39-23.el5_5.1
e2fsprogs-1.39-23.el5_5.1
e2fsprogs-libs-1.39-23.el5_5.1
可以从网上下载ext3grep源码包:
wget http://code.google.com/p/ext3grep/downloads/detail?name=ext3grep-0.10.2.tar.gz
解压、编译、安装
tar zxf ext3grep-0.10.2.tar.gz
cd ext3grep-0.10.2
./configure –prefix=/usr/local/ext3grep
make
make install
三、利用ext3grep恢复rm –rf删除的数据
首先我们模拟一个磁盘分区,创建一个虚拟设备
[root@localhost ~]# mkdir /disk 创建挂载点
[root@localhost ~]# mkdir /virtual
[root@localhost ~]# dd if=/dev/zero of=/virtual/disk1 conut=102400
[root@localhost ~]# mkfs -t ext3 /vittual/disk1
[root@localhost ~]# mount -o loop /virtual/disk1 /disk
[root@localhost ~]# echo “this is a ext3grep test,thank you” >/disk/ext3grep-test.txt
用rm –rf 删除刚才创建的文件
rm –rf /disk/*
然后查看确认文件已被删除
三、用ext3grep恢复被删除的文件
创建一个专门用来存放被恢复文件的目录
mkdir restore
cd restore
四、恢复文件的过程
在刚创建的restore目录下执行
查看被删除的文件信息
[root@localhost restore]# /usr/local/ext3grep/bin/ext3grep /virtual/disk --ls --inode 2
.-- File type in dir_entry (r=regular file, d=directory, l=symlink)
| .-- D: Deleted ; R: Reallocated
Indx Next | Inode | Deletion time Mode File name
==========+==========+----------------data-from-inode------+-----------+=========
0 1 d 2 drwxr-xr-x .
1 end d 2 drwxr-xr-x ..
2 end d 11 D 1340620814 Mon Jun 25 18:40:14 2012 drwx------ lost+found
3 end r 12 D 1340620814 Mon Jun 25 18:40:14 2012 rrw-r--r-- ext3grep-test.txt
开始恢复 [root@localhost restore]# /usr/local/ext3grep/bin/ext3grep /virtual/disk --restore-file ext3grep-test.txt
Running ext3grep version 0.10.2
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
Number of groups: 7
Minimum / maximum journal block: 16616 / 20729
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1340620763 = Mon Jun 25 18:39:23 2012
Number of descriptors in journal: 20; min / max sequence numbers: 2 / 5
Writing output to directory RESTORED_FILES/
Loading disk.ext3grep.stage2... done
Restoring ext3grep-test.txt
由上面的输出可以得知,ext3grep-test.txt文件已经恢复成功,在当前目录下生成一个RESTORED_FILES目录,恢复过后的文件就放在那里。
[root@localhost RESTORED_FILES]# ls
ext3grep-test.txt
总结:此工具虽然能够恢复被rm –rf 命令删除的文件,但是做为一个系统管理人员应该在脑海中每时每刻都应该有一个备份数据的概念,毕竟备份才是王道!