点开这边文章,就知道你在运维过程中遇到过误删libc.so.6或者更改其指向导致很多基础命令失效的问题,可能是你在升级内核,抑或是你在更新glibc库文件,就是这样,很多命令轻轻松松的消失,下一秒,HELP~~~~~
现象:
执行命令ls
或者其他命令报错:
ls:error while loading shared libraries: libc.so.6: cannot open shared object file:Error 40
不要慌,还是有解决办法的。
如果你没有删libc-2.14.so
这个文件或者更高版本的libc库文件,那就更容易了(可能你的这个文件和我的路径不一致,但,解决的思路如下):
执行:
LD_PRELOAD=/usr/local/glibc-2.14/lib/libc-2.14.so ln -s /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
如果不幸,你把libc-2.14.so
文件删除了。那就想方设法从其他正常的机器上复制到/lib64/
目录下,这是最快的!
执行:
LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6
如果你删除的不是这个库文件,而是/lib64
甚至是 /
,恢复备份/镜像/快照,否则跑路。
完毕。