一尘不染

删除符号链接libc.so.6后如何恢复?

linux

在我们的服务器中,指向的符号链接libc.so.6已被删除。现在,系统中的所有二进制文件都不起作用。为了解决这个问题,我尝试:

/bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6

正如预期的那样,这给了我:

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

我也尝试过:

/lib/ld-linux-x86-64.so.2  --inhibit-rpath /lib/libc.so.6 \
   --library-path /lib/libc-2.11.3.so \
   /bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6

结果相同。进一步失败的尝试包括cp,mv,cat。

我通过ssh连接,并且我相信关闭该会话后将无法打开另一会话。有没有办法修复此系统(也许使用bash内置)?

[ 编辑 ]我所做的:

while read line; do echo $line; done < /lib/libc-2.11.3.so > libc.so.6

复制文件并尝试使用:

/lib/ld-linux-x86-64.so.2  --inhibit-rpath libc.so.6 --library-path . \
  /bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6

并得到:

/bin/ln: error while loading shared libraries: ./libc.so.6: ELF file OS ABI invalid

阅读 500

收藏
2020-06-07

共1个答案

一尘不染

您可以简单地运行ldconfig。大多数发行版都将其作为静态二进制文件提供。

2020-06-07