yum 升级GCC失败导致的系统崩溃

GLIBC升级失败导致系统崩溃

  • 原因
  • 解决方法

原因

libc.so.6是C运行时库 glibc的软链接,程序启动和运行时,是根据libc.so.6软链接找到glibc库

lib64/libc.so.6是一个软链接,指向/lib64/libc.so-2.1x,2.1x表示其对应版本,去兼容相应CentOS版本
很多基本命命令依赖glibc,libc.so.6链接对应版本不一致将导致系统的几乎所有程序不能工作
解决过程

由于我们也是第一次遇到,没啥经验 那就搜索了,根据相关文章思路 以及通过少的可怜可以执行的命令试错 大致知道了原因:应该是有人升级了内核,但是升级失败了,导致服务器存在两个内核,在执行yum的过程中应该把错误的内核指向了 /lib64/libc.so.6 。我们通过 命令发现 /lib64/libc.so-2…xx.so 有两个版本(tab 命令补全还可以使用),我们参考了其他机器发现都使用2.17 版本 。

但是我们在 执行 “sln /usr/lib64/libc-2.17.so /usr/lib64/libc.so.6” 过程中 发现 一直提示 一个很奇怪的错误,最后我们发现 其实 /lib64/libc-2.17.so 文件其实也是有问题的,幸好我们查找整个服务器备份了一个 2.17 的 so 文件(喜极而泣),然后把 这个 so 替换了 /lib64/libc-2.17.so 。发现软链之后就解决了一些问题。

解决方法

在救援模式下通过以下指令解决:
主要指向如下命令,就可以解决。

sln /usr/lib64/ld-2.17.so /usr/lib64/ld-linux-x86-64.so.2
sln /usr/lib64/libc-2.17.so /usr/lib64/libc.so.6

cd /usr/lib64
ls -a
pthread.so.0 -> libpthread-2.17.so(确定是否是这个连接)

rm pthread.so.0

ln -s libpthread-2.17.so pthread.so.0

你可能感兴趣的:(linux,服务器,centos)