CentOS   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了问题解决:Centos误将/lib64更改为lib64.bak大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

CentOS系统中,lib目录下的库对系统的正常运行起着非常关键的作用。一旦误操作将导致系统瘫痪。 /lib64被重命名 故障表现 由于操作失误,把/usr/lib64重命名成了/usr/lib64.bak,结果发现,在运行所有外置命令的时候报错: mv命令无法使用 -bash: /bin/mv: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter:
CentOS系统中,lib目录下的库对系统的正常运行起着非常关键的作用。一旦误操作将导致系统瘫痪。

/lib64被重命名
故障表现
由于操作失误,把/usr/lib64重命名成了/usr/lib64.bak,结果发现,在运行所有外置命令的时候报错:

mv命令无法使用

-bash: /bin/mv: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

cp命令无法使用

-bash: /bin/cp: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

ls命令无法使用

-bash: /bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

ssh命令无法使用

-bash: /usr/bin/ssh: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
想使用mv把文件重命名回来已经不行了,就连重新ssh远程都远程不了。

修复方法
方法
光盘修复,安装glibc,如果机器允许重启的话

方法
系统一般情况下会设置LD_LIBRARY_PATH, LD_PRELOAD这两个环境变量,来改变应用程序所调用文件的路径。这两个环境变量只对应用程序有效,可能会对shell命令不起作用

因为认的库文件路径/usr/lib64被改成了/usr/lib64.bak,因此尝试:

export LD_LIBRARY_PATH=/usr/lib64.bak
export LD_PRELOAD=/usr/lib64.bak
cp /usr/lib64.bak /usr/lib64
方法
一个正常的操作系统上<我们可以发现/lib64/ld-linux-x86-64.so.2只是个软链,真实文件是/usr/lib64/ld-2.17.so,而且这个文件本身并不是库文件,可以简单的认为他是库文件的管理程序。

ld-linux-x86-64.so.2是操作系统的核心,并不受LD_LIBRARY_PATH环境变量的影响。如果想改变其调用方式,可以查看man文档

根据使用帮助,我们手动指定库路径进行调用cp命令
/lib64/ld-linux-x86-64.so.2 --library-path /lib64.bak /bin/cp /lib64.bak /lib64 -afr
删除/lib64/ld-linux-x86-64.so.2
解决方法同上,删除的是软连接文件链接回来即可

/lib64/ld-2.17.so --library-path /lib64/ld-2.17.so /bin/ln -sv /lib64/ld-2.17.so /lib64/ld-linux-x86-64.so.2/lib64被误删这个是致命的故障,趁没有关闭ssh连接,赶紧使用内置命令while read把重要的配置文件输出到屏幕复制粘贴出来吧,然后尝试光盘修复

大佬总结

以上是大佬教程为你收集整理的问题解决:Centos误将/lib64更改为lib64.bak全部内容,希望文章能够帮你解决问题解决:Centos误将/lib64更改为lib64.bak所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: