如何在ext3上恢复数据&&数据恢复 linux

今天又乌龙了,误把/usr文件夹给删除了,泪奔,拷贝了一个相同版本的/usr发现实在不行。

连debugfs命令都不能用了,系统所需要的重要文件都在/usr文件夹下。--------以后千万要谨慎。。。。小心使得万年船。。。

网上搜到了用系统盘恢复的办法。。。没有这个安装盘,估计用了也不能恢复,还有很多应用软件应该要重装吧

 

解决办法一:重新修复系统

常在河边走,哪能不湿鞋,误操作总会有的,比如把/usr/删掉了:
http://linux.chinaunix.net/bbs/thread-1064004-1-1.html
那能不能恢复呢?当然可以,下面是思路和步骤:
预备知识:
rpm
包的各种信息,包括包名,安装日期、
文件md5校验信息等,都是存放在/var/lib/rpm的各个文件当中的,
所以只要这个目录不被删掉,我们可以从中读出我们需要的信息进行恢复被误删的文件。
步骤:1,用安装光盘进入rescue模式,校验所有
系统中的安装包,找出那些文件丢失:

  1. rpm -qaV --root /mnt/sysimage >/tmp/rpm_qaV.log

复制代码

2,找到所有校验结果为missing的文件:

  1. grep missing /tmp/rpm_qaV.log|awk '{print $NF}' >/tmp/missing_file

复制代码

3,查询每一个被删除的文件是属于那个rpm包:

  1. for line in `cat /tmp/missing_file`
  2. do
  3. rpm -qf $line --root /mnt/sysimage >>/tmp/missing_rpm
  4. done

复制代码

4,步骤3中生成的missing_rpm文件有很多是重复的,需要处理一下:

  1. sort /tmp/missing_rpm |sort -u >/tmp/rpm_reinstall
  2. cp /tmp/rpm_reinstall /mnt/sysimage/tmp

复制代码

到此为止,我们在救援模式下得到了系统所有被删除的文件所在的rpm包,
下一步的工作就是把这些rpm包重新安装,被删除丢失的文件也就找回来了。
5
,启动到单用户模式,挂载光盘,从安装光盘里拷贝拷贝需要的rpm包到硬盘准备安装:

  1. mkdir /rpms
  2. mount /dev/cdrom /mnt
  3. cd /mnt/Server
  4. for line in `cat /tmp/rpm_reinstall`
  5. cp $line* /rpms
  6. done

复制代码

6,重新用安装光盘启动到救援模式,安装rpm包:

  1. rpm -ivh /mnt/sysimage/rpms/* --root /mnt/sysimage --nodeps --force

复制代码

忽略各种警告和错误信息,等待完成,重新启动系统,一切正常,可以安心睡觉了!

 

如何在ext3上恢复数据--实践

作者:cnh4wk
来源:老鹰天下

工作中遇见了,查了网上文章,发现没几个实际能通过的,实在是怒。自己找了软件做了一次实战操作,基本可以保证稳定恢复。
测试环境
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux

 

所需的相关库
[root@localhost ~]# rpm -qa |grep e2fsprogs
e2fsprogs-libs-1.39-8.el5
e2fsprogs-1.39-8.el5
e2fsprogs-devel-1.39-8.el5
分区情况
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.2G 1.8G 4.2G 30% /
/dev/sda1 99M 11M 83M 12% /boot
/dev/mapper/VolGroup00-LogVol02
1008M 34M 924M 4% /data
tmpfs 125M 0 125M 0% /dev/shm
需要软件
http://code.google.com/p/ext3grep/downloads/list
先下载软件
[root@localhost ~]# cd /root/src/
[root@localhost src]# wget http://ext3grep.googlecode.com/files/ext3grep-0.6.0.tar.gz src
[root@localhost src]# ls
ext3grep-0.6.0.tar.gz
[root@localhost src]# tar xfvz ext3grep-0.6.0.tar.gz
[root@localhost ext3grep-0.6.0]# ./configure
[root@localhost ext3grep-0.6.0]# make install
[root@localhost ext3grep-0.6.0]# ext3grep
Running ext3grep version 0.6.0
编译然后测试可以使用了,一切做好了以后开始我们的恢复过程。
我的目录是/data分区,我先格式化了分区,我放一个文件在根目录下和一个子目录下的文件。
/dev/mapper/VolGroup00-LogVol02 1008M 34M 924M 4% /data
拷贝点文件过去
[root@localhost ~]# ]# cp /bin/ls /data/
[root@localhost ~]# ]# cp -rf /bin /data/
[root@localhost ~]# ]# ls -la /data/
total 136
drwxr-xr-x 4 root root 4096 Apr 21 17:37 .
drwxr-xr-x 25 root root 4096 Apr 21 17:11 ..
drwxr-xr-x 2 root root 4096 Apr 21 17:37 bin
drwx------ 2 root root 16384 Apr 21 17:15 lost+found
-rwxr-xr-x 1 root root 93560 Apr 21 17:37 ls
[root@localhost ~]#
一个子目录一个可执行文件
现在删除ls文件和bin下面的zcat
[root@localhost ~]# rm /data/ls
rm: remove regular file `/data/ls'? y
[root@localhost ~]# rm /data/bin/zcat
rm: remove regular file `/data/bin/zcat'? y
[root@localhost ~]# ls -la /data/ls /data/bin/zcat
ls: /data/ls: No such file or directory
ls: /data/bin/zcat: No such file or directory
文件没有了然后我们来恢复
首先umount掉分区
[root@localhost ~]# umount /dev/mapper/VolGroup00-LogVol02
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.2G 1.8G 4.2G 30% /
/dev/sda1 99M 11M 83M 12% /boot
tmpfs 125M 0 125M 0% /dev/shm
确认卸载,然后使用ext3grep来恢复。
[root@localhost ~]# ext3grep/dev/mapper/VolGroup00-LogVol02 --ls --inode 2
这里会创建扫描分区
[root@localhost ~]# ext3grep /dev/mapper/VolGroup00-LogVol02 --ls --inode 2
[root@localhost ~]# ext3grep /dev/mapper/VolGroup00-LogVol02 --restore-file ls
Running ext3grep version 0.6.0
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
Number of groups: 8
Minimum / maximum journal block: 585 / 8787
Loading journal descriptors... sorting... done
Number of descriptors in journal: 58; min / max sequence numbers: 2 / 5
Loading VolGroup00-LogVol02.ext3grep.stage2... done
Restoring ls
[root@localhost ~]# ext3grep /dev/mapper/VolGroup00-LogVol02 --restore-file bin/ls
Running ext3grep version 0.6.0
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
Number of groups: 8
Minimum / maximum journal block: 585 / 8787
Loading journal descriptors... sorting... done
Number of descriptors in journal: 58; min / max sequence numbers: 2 / 5
Loading VolGroup00-LogVol02.ext3grep.stage2... done
Restoring bin/ls
[root@localhost ~]# ls -la RESTORED_FILES/
total 124
drwxr-xr-x 3 root root 4096 Apr 21 18:01 .
drwxr-x--- 5 root root 4096 Apr 21 17:55 ..
-rwxr-xr-x 1 root root 93560 Apr 21 17:48 ls
[root@localhost ~]# ext3grep /dev/mapper/VolGroup00-LogVol02 --restore-file bin/zcat
Running ext3grep version 0.6.0
WARNING: I don't know what EXT3_FEATURE_COMPAT_EXT_ATTR is.
Number of groups: 8
Minimum / maximum journal block: 585 / 8787
Loading journal descriptors... sorting... done
Number of descriptors in journal: 58; min / max sequence numbers: 2 / 5
Loading VolGroup00-LogVol02.ext3grep.stage2... done
Restoring bin/zcat
[root@localhost ~]# ls -la RESTORED_FILES/bin/
total 188
drwxr-xr-x 2 root root 4096 Apr 21 18:01 .
drwxr-xr-x 3 root root 4096 Apr 21 18:01 ..
-rwxr-xr-x 1 root root 62136 Apr 21 17:48 zcat
看看都恢复在RESTORED_FILES目录下,大小也一样
参考资料
http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值