起因
- 在安装iperf时提示glibc版本依赖过低,提示依赖2.14或2.15,查看本机版本 centos6.9 glibc-2.12,然后想当然的升级到14
- 惨案发生了,ssh断开后不好使了,重启sshd服务失败,系统重启后无法启动,提示内核错误
- 回想一下最近的操作,一定是glibc搞的
重要的事情说三遍
- 不要随意升级内核运行库!
- 不要随意升级内核运行库!
- 不要随意升级内核运行库!
急救
- 不要相信网上的chroot /mnt/sysimage,不好使切换不了,因为glibc不对
- 也不要相信网上从/lib64/下把libc-2.12.so和libc.so.6 到/mnt/sysimage/lib64下就好使,不可能,因为升级后更改了好多依赖
- 正确的打开方式是这样:
- 找到系统盘,加载到光驱中,用救援模式启动(菜单中第三项)
- 使用带网络的救援模式,配置eth0的ip mask gateway dns
- 确定libc.so.6的版本,strings /lib64/libc.so.6|grep GLIBC
- 到centos的源中去找glibc和glibc-common这两个rpm包 http://rpmfind.net/linux/centos/6.9/os/x86_64/Packages/ 下载到一台机器上
- 在目标机器上用scp命令把rpm包copy到本地
- 验证rpm依赖 rpm -ivh –test –force –noscripts –root=/mnt/sysimage glibc.rpm glibc-common.rpm
- 安装 rpm -ivh –force –noscripts –root=/mnt/sysimage glibc.rpm glibc-common.rpm
- 安装成功后,现在运行chroot /mnt/sysimage/,正常了
- 退出shell(exit),然后重启,正常进入系统
注意
- 不要在救援shell里瞎操作根目录的文件,会搞坏系统盘