因为要对大批量linux升级openssh,所以针对centos6和centos7写了两个脚本进行升级,由于操作失误导致将centos6的rpm包的升级到centos7上面去了,导致升级完报了一堆错,且除了cd命令可用之外,系统命令全部不能用了,连ls都不能用了。
报错:ssh: /lib64/libc.so.6: version ‘GLIBC_2.14’ not found
ssh: /lib64/libc.so.6: version ‘GLIBC_2.15’ not found
ssh: /lib64/libc.so.6: version ‘GLIBC_2.16’ not found
ssh: /lib64/libc.so.6: version ‘GLIBC_2.17’ not found
报错是缺少GLIBC_2.14和GLIBC_2.17,需要重新安装glibc包,由于升级也安装了kernel包,也一起先重装这两个包。
由于是虚拟机,直接挂ISO文件就行,重启系统从虚拟光驱引导。
选择Troubleshooting
选择Rescue a CentOS system
选择1)Continue
进入命令后使用mkdir创建media文件夹
mkdir -p media
挂载光驱到media
mount /dev/cdrom /media
由于启用的救援模式,原系统被挂载到了/mnt/下为sysimage所以这里把安装包安装到此处:
cd /media/Packages
rpm -ivh kernel-*x86_64.rpm --root=/mnt/sysimage/ --nodeps --force
rpm -ivh glibc-*x86_64.rpm --root=/mnt/sysimage/ --nodeps --force
安装包注意先后顺序,先安装kernel包再安装glibc包。
安装完成后修复引导文件
grub2-mkconfig -o /mnt/sysimage/boot/grub2/grub.cfg
到这里系统就修复成功了。
完成后重启,将机器改为第一启动为硬盘即可。
注:由于系统内核被破坏,reboot命令已经无效,需要强制重启,会有一定概率遇到以下情况:
遇到以上情况会出现安装rpm包提示rpm包数据库出错。
先进入到挂载系统的rpm数据库目录下
cd /mnt/sysimage/var/lib/rpm
ls | grep db
看下有几个数据库,全部备份为.bak并删除原文件
并使用命令重建rpm数据库
rpm --rebuilddb
接下来即可安装完成glibc包、kernel包的安装,完成后修复grub引导,重启后选择从硬盘启动即可
升级openssh导致CentOS7所有命令无法使用
最新推荐文章于 2024-07-04 21:34:28 发布