恢复误删除的/usr目录

来源:互联网 发布:世界贸易总额数据 编辑:程序博客网 时间:2024/05/21 04:26
常在河边走,哪能不湿鞋,误操作总会有的,比如把/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
复制代码
忽略各种警告和错误信息,等待完成,重新启动系统,一切正常,可以安心睡觉了!
原创粉丝点击