误操作导致Redhat 6的bash、glibc等包升级至Redhat 7版本的恢复过程

误操作导致Redhat 6的bash、glibc等包升级至Redhat 7版本的恢复过程

全过程

起因

为Redhat 6.9系统的主机A安装ipmitool包,发现系统现有yum源内无对应包。想起来其他服务器上的镜像内存在,将对应主机B上的yum配置脚本复制到主机A上执行,发现yum安装部分包过程中循环输出部分信息,等待一段时间后手动ctrl+c中断。
至此发现主机A上的系统版本与主机B不一致,且出现部分异常状况。

由于保密要求,命令执行结果并未导出,仅描述

出现问题

  1. 发现从其他主机上在密码正确的情况下无法ssh至主机A了,不断提示密码错误。重置A的密码后仍然无法成功ssh成功。
  2. 从主机A的BMC远程控制界面登录,提示bash不存在。

恢复

  1. 恢复bash
    趁当前session还没中断,在同版本系统的主机C上打包/bin目录,并scp至主机A上恢复bash
# server C
tar cvf bin.tar /bin
# server A
scp IP_C:/root/bin.tar /root
tar xvf /root/bin.tar /bin

此后可以正常ssh登录,由于通过vpn连接的服务器,这样即使当前连接中断了,也可以重新登录了。

  1. 处理yum更新的包
  • 查看yum历史事务
    yum history
    在当日进行的事务有3个,id分别为5, 6, 7。
    按顺序回滚事务时,发现yum源异常,手动重新配置了一遍yum源
  • 配置本地镜像为yum源
# 挂载本地6.9的镜像
mount redhat.iso /var/www/html/redhat6.9

# 启动httpd服务
service httpd start

# 浏览器打开IP_A/redhat6.9,可以看到文件

# 配置repo文件
vim /etc/yum.repos.d/rhel6.repo
[rhel6]
name=rhel6
baseurl=http://IP_A/redhat6.9/
enabled=1
gpgcheck=0

# 更新yum源
yum clean all && yum makecache

# 查看当前yum源
yum repolist all
  • 回滚事务
    yum history info 7 # 查看事务7内容
    发现安装了el7版本的parted
    yum history undo 7 # 回退事务7
    回退事务6、5同上操作
    在回退5时,出现报错,回退失败,提示:
    bash had installed conflicts filesystem
    parted-high.version is a duplicate with parted-low.version。

查看事务内容,发现升级了bash、glibc等至el7版本。

# yum回退事务7时,不知道为什么parted仍然保留了两个版本

# 查看已经安装的parted
yum list parted

# 卸载el7版本的parted包
yum erase parted-high.version

# yum事务5中,显示升级bash为el7,且glibc等相关包从2.12的el6版本升级至2.17的el7版本
# 查看本地yun源内是否存在升级前的包,添加--showduplicates参数,避免不显示已安装的64位包的其他版本
yum search bash --showduplicates
yum search glibc* --showduplicates

# 本地镜像内的包与升级前一致
yum history undo 5

# 回退成功

可参考: RHEL6误安装RHEL7的包导致glibc被升级后系统崩溃处理方法.

总结

  • 使用脚本时事先阅读一遍,防止出现异常。
  • 涉及yum更新操作时,提前确认当前系统版本、配置的镜像源版本、目标软件包的版本及依赖等

这次幸好大部分命令,scp、ls、cd、vim等都还在,发现有问题的只有bash、service,恢复的时候不用重启系统进单用户操作,否则系统上的oracle异常关闭后续重启时也是麻烦事,以后还是要更细心,不能因为是试运行系统就随便操作了 T_T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值