linux平台:REHL6.7
故障原因:由于不小心使用命令yum update nss误升级了工作平台中nss系列工具包导致系统中yum 和 rpm命令执行都报错。
由于yum rpm命令都不好用使用使用平台将会变得异常艰难,因此尝试将nss降级。
但是由于nss升级导致yum 和 rpm都不好用
yum history undo 或者 rpm -Uvh –oldpackage 等命令也无法实现
在查阅相关资料之后决定尝试使用救援Rescue模式进行nss版本降级工作
首先应该进入救援shell模式,下面是进入步骤
将linux系统ISO文件制作成U盘或者在虚拟机下挂载到虚拟机DVD光驱中
接下来选择“Rescue installed system”然后按回车确认
选择语言English 键盘布局US
4、SetupNetworking选择Yes,IP地址等选择自动就好了,这样可以使用yum源进行恢复
5、救援模式选择Continue
6、选择OK进入该模式
7、选择shell模式 Start shell 回车进入,下图可以看见可以进入shell可以输入命令了
接下来是恢复软件包过程
方法1:使用yum undo命令恢复(在救援模式下该命令好用)
由于使用光盘启动的救援系统因此需要使用chroot /mnt/sysimage 命令切换到自己安装的系统上去
输入 yum history命令查看yum安装包记录,可以知道升级什么软件导致系统异常
找到异常升级步骤后使用yum history undo N 回滚yum操作
如果上步回滚成功那么恭喜,可以不用执行下面操作了
由于yum源中未找到要恢复的nss版本,undo命令失效,下面要使用终极大法了
终极大法(使用光盘原始RPM包修复)
由于使用光盘启动的救援系统因此需要使用chroot /mnt/sysimage 命令切换到自己安装的系统上去(前面敲过该命令可以不使用)
创建目录cd mnt ; mkdir media
挂载光盘文件到media目录下mount /dev/dvd media,挂载后ls查看文件夹如下图:
RPM安装包存放在Packages文件夹下 cd Packages;ls 可以看见系统所有的rpm包
接着查看要修复的软件包使用命令
rpm –Uvh –0ldpackage –nodeps xxx.rmp 修复
--nodeps可以先不使用 如果有相应的依赖包的需要使用该参数忽略依赖
6、使用rpm –qa | grep xxx查看软件版本是否正确,确认没问题后退出救援重新载入系统
恭喜!程序到此修复成功,