linux卸载rpm包的命令,如何恢复误删除的rpm包命令

如何恢复误删除的rpm包命令

在linux学习过程中,我们会遇到各种各样的问题,当然,如果能够将遇到的问题一一解决也是非常开心的,因为在解决问题的过程中我们的专业技能也得到了很大的提升。最近的测试中遇到了一个平时很少接触的问题:如何恢复误删除的rpm包命令。所以觉得有必要写下来,以防止下次出现类似的问题而不会解决。

首先模拟卸载rpm

rpm -e–nodeps rpm

3c8ce6380daa33c267ccb0e2e66a02de.png

由于yum依赖于rpm,所以yum也无法正常使用

yum list

error: Unabletoopen/usr/lib/rpm/rpmrcforreading:

No suchfileordirectory.

error: no dbpath has beenset

error: cannotopenPackages databasein/%{_dbpath}

CRITICAL:yum.main:

Error: rpmdbopenfailed

出现这样的情况就需要进入救援模式,重新为当前系统安装rpm命令包。不同的环境进入救援模式的方法也不尽相同,这里参考了部分资料。进入救援模式的四种方法如下:

适用场景:

当误操作修改系统启动文件/etc/fstab, /etc/rc.d/rc.sysinit时,就会造成系统启动时读取磁盘或初始化环境失败,导致

救援(rescue)模式的本质:

只是一个带shell的Linux运行环境,借助它可以通过mount和chroot进入要修复的系统

解决方法:

<

p style=”text-indent:2em”>

有Linux启动盘(或iso文件),系统是RHEL系统的:

用安装光盘或者硬盘安装的方式进入安装界面:在shell中输入Linux rescue

然后根据提示选择语言和键盘格式

选择是否配置网卡:一般系统到了要rescue了,网络也就不需要了,所以可以选择跳过网卡配置,当然你如果需要也可以选择是,具体设置过程和安装时一样

选择是否让系统查找硬盘上的RHEL系统,选择继续。

硬盘上的系统已经被找到并挂载在/mnt/sysimage下

按提示chroot

/mnt/sysimage,之后你就可以已经在你的要被拯救的系统下了

grub挂了的:grub-install /dev/hdxx

配置文件改错的:vi

/etc/fstab vi /etc/inittab

软件包被毁的:rpm

-F xxx.rpm

完成修复工作后,exit命令退出chroot,exit退出rescue

shell系统重启

有Linux启动盘(或iso文件),系统是非RHEL系统(如Debian)的:

前3步与上述方法1一致

第4步时,rescue程序会找不到硬盘上的系统,所以我们选择“跳过“,直接进入shell

新建文件系统挂载点,进入系统磁盘分区

1

2

3

4

5

6

7

8

9

10

11

假设要拯救的为debian系统,系统分区部署为:

/dev/hda1为/boot分区

/dev/hda5为/分区

/dev/hda6为swap分区

==================================================

# fdisk -l(查看分区情况)

# mkdir /mnt/Linux

# mkdir /mnt/Linux/boot(根据fdisk -l得到的信息创建目录)

# mount -t ext3 /dev/hda5

/mnt/Linux

# mount -t ext3 /dev/hda1

/mnt/Linux/boot(挂载硬盘上的文件系统)

# chroot /mnt/Linux(chroot改变工作系统)

继续方法1的第6-7步,做相应操作即可

无Linux启动盘(或iso文件):

系统启动时,按任意键进入grub选择界面

选择需要启动的Linux系统,按“e”进入编辑界面

选择kernel行,按“e”进入核心启动模式编辑界面

在kernel行的最后加上“init=/bin/bash”,按回车键(Enter),然后按“b”进行重新引导

引导系统会得到一个bash

shell,但进入的系统是read-only的,需使用fsck检查系统

1

2

fsck -a/dev/hdaX

#处理根分区,X是根分区号,如hda2

将系统挂载成read-write的:mount / -o remount,rw

进行系统文件修改,或其他操作

在修复好系统后将系统重新挂载成ro的,就可以安全重启了:mount / -o remount,ro

4、进入单用户模式(适用于忘记root密码的):

前3步与方法3一致

第4步,需在kernel行的最后加上“single”或“s”,按回车键(Enter),然后按“b”进行重新引导

输入passwd修改root密码

输入init 6重新启动系统即可

(参考资料:http://blog.csdn.net/zhubinqiang/article/details/38331417)

下面将具体演示rpm安装过程,稍复杂:

1.重启虚拟机进入救援模式(本人使用的是虚拟机)

3c8ce6380daa33c267ccb0e2e66a02de.png        

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

2.进入救援模式后df看下光盘有没有挂载,没有挂载则手动挂载

mkdir/mnt/cdrom

mount/dev/sr0/mnt/cdrom

3c8ce6380daa33c267ccb0e2e66a02de.png

3.安装rpm

#进入光盘的Packages目录执行

rpm -ivh

/mnt/cdrom/Packages/rpm.XXX.rpm –root=/mnt/sysimage

3c8ce6380daa33c267ccb0e2e66a02de.png

#切换到原系统的根目录下

cdroot /mnt/sysimage

#测试rpm是否成功安装

rpm

3c8ce6380daa33c267ccb0e2e66a02de.png

#重启

reboot

注意:

1、救援模式原系统挂载在/mnt/sysimage下,安装时须制定参考的根目录   2、基本命令不要随便卸载,否则服务器重启可能带来不可预知的问题

原创文章,作者:poetic snow,如若转载,请注明出处:http://www.178linux.com/85409

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值