当前位置: 首页 > news >正文

修改lib64/l.ibc.so6导致系统命令都不能用

问题:想升级libc-2.12.so到libc2.17,拷贝了一个libc2.17到lib64下,然后建立软连接到l.ibc.so6,导致系统除了cd之类的命令,其他都不能使用

报错:relocation error: /usr/lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVA not defined i

解决方法1:ldconfig -l -v /lib64/libc-2.12.so

解决方法2:

libc.so.6被破坏的修复方法:

在每条命令前加上 LD_PRELOAD=/lib64/libc-2.12.so 前缀,不能使用的命令可以重新使用。例如 LD_PRELOAD=/lib64/libc-2.12.so ls,ls命令可以重新使用。删除lib64下被破坏libc.so.6文件,再使用LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6,问题解决。

libc.so.6被删除的修复方法:

LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6

#############################################

libc.so.6介绍:

libc.so.6是glibc的软链接,glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc,所以说绝大部分操作命令都缺少不了它。如果误删或破坏了libc.so.6,大部分系统命令将无法执行,ssh登录系统也不成功,只会无休止的提示以下错误:

error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

这种情况下,大部分命令已经不能执行了,只能执行例如cd,echo等小部分命令,而实用的cp,mv则不可用,如果想解决,记得ssh一定不要断开,如果ssh已断开则无法重新连接上,得使用另外的方法用光盘重启进入急救模式!!!

在同版本系统上查看/lib/libc.so.6得知是属于libc-2.12.so的软链接,因此,libc-2.12.so文件肯定还是存在的,误删的只是软链接而已,但此时想用ln命令重新建立软链接是失败的,但是可以这样强制设置变量就能执行成功!

LD_PRELOAD=/lib/libc-2.12.so   ln -s /lib/libc-2.12.so /lib/libc.so.6

斜体加粗部分为glibc临时指定的库,这样正确执行后libc.so.6就正确恢复了。

glibc是一个非常底层的库,bash也依赖它,所以,如果把这个库干掉了,基本上啥事都干不了了,但是为啥前面设置一下LD_PRELOAD变量 就可以了呢?是这样的,LD_PRELOAD可以影响程序的运行时的链接(Runtime linker), 它允许你定义在程序运行前优先加载的动态链接库,之前把libc.so.6这个软连接给干掉了,所以系统找不到这个库了,但是通过LD_PRELOAD设置一下glibc这个库的真实地址就可以解决这个问题了。

http://www.lryc.cn/news/67362.html

相关文章:

  • Web(一)-- 创建一个简单的Web项目(idea 2022版)
  • 前一篇文章最后一个算法校正
  • 测试外包干了4年,我废了...
  • CPU组成元素:运算器+控制器
  • 计算机网络——主机IP地址、子网掩码、广播地址、网络数、主机数计算方法
  • Unity 后处理(Post-Processing) -- (1)概览
  • Ajax + axios + 常用状态码(笔记)
  • python运算符
  • Python 列表(List)
  • Java设计模式-装饰模式
  • 桐乡学历提升-学历到底有什么用呢?
  • 15天学习MySQL计划(运维篇)分库分表-监控-第十四天
  • Melis4.0[D1s]:8.显示测试:图片格式和透明度
  • 【论文阅读】Pseudo-Labeling and Confirmation Bias in Deep Semi-Supervised Learning
  • 三次输错密码后,系统是怎么做到不让我继续尝试的?
  • 医学影像系统源码,三维后处理和重建 PACS源码
  • golang汇编之函数(四)
  • 成都爱尔李晓峰主任:眼睛干到发出求救信号,快注意!
  • HiEV独家 | 比亚迪高阶智驾终于来了 ,新款汉首发,多车型将搭载
  • 全面解析Linux指令和权限管理
  • C++ enum 和enum class
  • 设计模式之中介者模式
  • DJ5-8 磁盘存储器的性能和调度
  • springboot+vue留守儿童爱心网站(源码+文档)
  • 数字设计小思 - 谈谈非理想时钟的时钟偏差
  • 智慧厕所引导系统的应用
  • 眼球追踪、HDR、VST,从代码挖掘Valve下一代VR头显
  • 【MYSQL】聚合函数和单表/多表查询练习、子查询、内外连接
  • 分布式数据库集成解决方案
  • 如何配置静态路由?这个实例详解交换机的静态路由配置