linux glibc 升级失败,glibc升级失败后的处理过程

系统环境:RHEL系列

内核:2.6.89

升级我没有操作这里不写了,同事远程升级失败后,在现场处理的过程,记录一下。

安装失败后,输入任何命令都是无效的,系统只会重复"relocation error: /lib/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference"的错误信息,重新启动计算机在启动中就会失败,根本无法进入原Linux系统。

上网搜索后得到相关信息。文库的方法是用光盘进rescue,根据我的实际情况,我把系统挂载到了我的debian7的ks服务器下。mount根分区,检查/lib/tls/libc.so.6 在不在。是什么情况,看到是这样的。

c72bb89e7fe37bf2e5f1a8b3ca47443b.png

链接还是原来的版本的,然后看看/lib有部分是新的了,两个地方不一致,搜到贴子说把/lib下的新的全连接回去就OK了可以启动,想了想反过来应当也可以。把/lib/tls/下的链接全部改为指向2.9版本的库文件,

ln -sf libc-2.9.so libc.so.6

ln -sf libm-2.9.so libm.so.6

ln -sf libpthread-2.9.so libpthread.so.0

ln -sf librt-2.9.so librt.so.1

另外,原/lib/tls/libthread_db-1.0.so必须被替换为Glibc2.9版本的libthread_db-1.0.so

cp -f ../libthread_db-1.0.so .

然后把盘拔回去,启动果然正常了。

运行:/lib/libc.so.6 可以查看版本。

网上还有朋友说,OS不重启的情况下,加个变量就可以执行命令了,但是我没有尝试,

export LD_PRELOAD=/lib/tls/libc-2.3.6.so

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值