mv:无法打开共享对象文件“libstdc++.so.6”:符号链接嵌套太大

mv:无法打开共享对象文件“libstdc++.so.6”:符号链接嵌套太大

该错误可能与主题中的错误略有不同 - 我正在从我的母语翻译它。

一切都失败后,我尝试按照 mjp 在这篇文章中指出的那样做: 未找到 GLIBCXX_3.4.20,如何修复此错误?

但结果是,每个命令(apt-get、mv、cp)都返回主题标题的错误。我无法返回文件的备份版本。

目前我甚至无法登录 Ubuntu。我被困在登录屏幕内。每次我尝试登录时,屏幕都会变黑,然后我又要重新登录。我只能通过 ctrl+alt+F3 使用该命令

我应该怎么办?

steeldriver 的回答(请看评论):

lrwxrwxrwx 1 root root 40 Jun 17 21:37 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> /usr/lib/x86_64-linux-gnu/libstdc++.so.6

-rw-r--r-- 1 root root 979056 May 7 2016 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19

lrwxrwrwx 1 root root 19 May 7 2016 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.old -> libstdc++.so.6.0.19

答案1

[我必须承认我有点困惑为什么像mv或这样的基本实用程序cp会因为而中断libstdc++.so.6,但是假设这是原因,我会尝试以下方法]

您的busybox ls输出表明您已成功递归链接/usr/lib/x86_64-linux-gnu/libstdc++.so.6到自身。幸运的是,您似乎没有删除或覆盖实际/usr/lib/x86_64-linux-gnu/libstdc++.so.6.19库。因此,您应该能够通过重新创建符号链接来恢复。

sudo如果其中一个或ln两个都依赖于该libstdc++库,则会出现问题。(可能bash不,因为您可以在虚拟终端上使用 shellCtrl登录AltF3

如果sudo损坏,那么你仍然应该能够从恢复模式启动到 root shell,如我如何启动到 root shell?. 然后你需要以读写模式重新挂载根文件系统

mount -o remount,rw /

之后,您可以尝试修复损坏的链接

ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

(这应该创建一个相对符号链接这是相对于目标路径解析的/usr/lib/x86_64-linux-gnu/,类似于您的.old链接)。

假设由于ln依赖于而失败,您可以使用具有内置的libstdc++.so静态链接可执行文件再次尝试:busyboxln

/bin/busybox ln -sf libstdc++.so.6.19 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

如果有效,您可以使用exitroot shell 继续正常启动。

相关内容