如何从 Ubuntu 20.04 服务器上损坏的 glibc 中恢复

如何从 Ubuntu 20.04 服务器上损坏的 glibc 中恢复

如果再给我一次机会,我会再检查一遍,但我却意外地运行了sudo ln -sf something /usr/lib/x86_64-linux-gnu/libc-2.31.so。而且,没有另一个 glibc 副本,因为这是真正的共享对象,而不是符号链接。

那么我该如何恢复呢?我想我可能必须再获取一份 glibc 副本,从 USB 设备启动机器,然后将干净的副本复制libc-2.31.so/usr/lib/x86_64-linux-gnu

正确的做法是什么?我还必须重建和libc.so.6下的符号链接吗?/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu

答案1

不要在 APT 控制的文件夹中创建符号链接!!!
您将破坏系统和/或为其未来的维护带来噩梦!!!

要恢复情况,请重新安装libc6 软件包经过

sudo apt-get update
sudo apt-get install --reinstall libc6 

下次不要触碰符号链接。
如果您想玩弄该系统 - 请在/usr/local/binAPT 控制之外进行。


注意:在最新的 20.04 LTS 中,只有一个名为libc-2.31.so- 看

# find / -name libc-2.31.so
/usr/lib/x86_64-linux-gnu/libc-2.31.so

以及一个名为libc.so.6

 # find / -name libc.so.6
 /usr/lib/x86_64-linux-gnu/libc.so.6

而它们的符号链接如下(中心部分被替换为(...)):

 # ls -al /usr/lib/x86_64-linux-gnu/libc-2.31.so /usr/lib/x86_64-linux-gnu/libc.so.6
 -rwxr-xr-x (...) /usr/lib/x86_64-linux-gnu/libc-2.31.so
 lrwxrwxrwx (...) /usr/lib/x86_64-linux-gnu/libc.so.6 -> libc-2.31.so

两个都提供经过libc6 deb 软件包

相关内容