一个软链接导致的系统崩塌
来源:互联网 发布:微信三级分销源码 编辑:程序博客网 时间:2024/05/06 18:37
今天,在centos6.5上测试,需要重新链接下libc.so.6,发现在/lib64下的libc.so.6只是一个软链接,于是毫不犹豫就删除了,结果就悲剧了,不管是ls,cp还是scp等命令全都不能用了,看了一下网上的介绍说若重启则系统不能启动了。
[root@rhino149 lib64]# su - rhino
su: relocation error: /usr/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
[root@rhino149 lib64]# su - rhino
su: relocation error: /usr/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
[root@rhino149 lib64]# ls
ls: relocation error: /usr/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
[root@rhino149 lib64]# pwd
/lib64
恐慌了,果然root下操作简直就是战战兢兢。
查找了一下:
libc.so.6 是c运行时库 glibc的软链接,而系统几乎所有程序都依赖c运行时库。程序启动和运行时,是根据libc.so.6 软链接找到glibc库。删除libc.so.6将导致系统的几乎所有程序不能工作。
每个glibc.so文件有它支持的libc版本,可以通过# strings /lib64/libc.so.6 |grep GLIBC_ 查看。如果程序编译的时候链接的libc库版本不在程序运行环境下的glibc库支持的libc版本之内,也会报错.
一个就是使用系统光盘或者U盘进入修复模式,在修复模式下新建 libc.so.6 软链接,按照http://blog.csdn.net/u013753804/article/details/48392325和http://wbwk2005.blog.51cto.com/2215231/415185来搞定。
简单的另一个方法:
那就是你的窗口还没有关闭
[root@rhino149 lib64]# LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
[root@rhino149 lib64]# ls
该命令的含义是:
linux调用so库文件时,先搜索当前路径,然后是系统库目录,提供LD_PRELOAD系统变量可以改变这个顺序,改变后的搜索顺序为 LD_PRELOAD, 当前路径, 系统库目录
。
于是,使用LD_PRELOAD指向正常的glibc库文件,然后执行ln等命令,就可以正常执行,执行成功之后, libc.so.6 就又存在了。
- 一个软链接导致的系统崩塌
- 一个dllimport 导致的链接错误LNK2019
- 压力和秩序的崩塌
- php的file_set_contents导致的一个系统主线问题
- 评论:【观点】开源者的信仰正在崩塌
- 差点令金融世界崩塌的数学公式
- 一个有可能导致系统慢的sql语句。
- 安装intel c++8.0后导致vc6编译正常的项目链接失败的一个解决方法
- 一个安装winXP系统很有用的链接
- 一个在线看android系统各个版本源码的链接
- 几个可能导致链接错误的原因
- strmiids.lib 导致的链接错误
- linux系统的软链接和硬链接
- Linux系统中硬链接与软链接的区别
- Linux系统中硬链接与软链接的区别
- linux 系统的软链接和硬链接
- linux系统中硬链接和软链接的区别
- Linux系统的硬链接和软链接
- Error parsing XML: unbound prefix on XXX解决办法
- AES加解密算法二
- Android studio 项目构建五|合并多个清单文件
- java.lang.IllegalArgumentException: node to traverse cannot be null!
- c/c++编译原理
- 一个软链接导致的系统崩塌
- 常见的tools ,一般你没怎么用它的
- Ioc和Aop的扩展
- Maven POM.xml 标签详解
- Android 版本更新签名冲突的问题以及注意事项,已解决
- spring boot 整合 spring data jpa
- swing布局格式:GridBagConstraints
- 创建json RequestBody
- Linux下用户组、文件权限详解