mv: gemeinsam genutzte Objektdatei „libstdc++.so.6“ kann nicht geöffnet werden: zu große Verschachtelung von symbolischen Links

mv: gemeinsam genutzte Objektdatei „libstdc++.so.6“ kann nicht geöffnet werden: zu große Verschachtelung von symbolischen Links

Der Fehler könnte etwas anders sein als der im Thema – ich habe ihn aus meiner Muttersprache übersetzt.

Nachdem alles fehlgeschlagen war, habe ich versucht, das zu tun, was mjp in diesem Beitrag vorgeschlagen hat: GLIBCXX_3.4.20 nicht gefunden, wie behebt man diesen Fehler?

Als Ergebnis gibt jedoch jeder Befehl (apt-get, mv, cp) den Fehler aus dem Thementitel zurück. Ich kann nicht zur Sicherungsversion der Datei zurückkehren.

Im Moment kann ich mich nicht einmal bei Ubuntu anmelden. Ich bin im Anmeldebildschirm hängen geblieben. Jedes Mal, wenn ich versuche, mich anzumelden, wird der Bildschirm schwarz und ich muss mich wieder anmelden. Ich kann den Befehl nur über Strg+Alt+F3 verwenden.

Was soll ich machen?

Antwort für steeldriver (siehe Kommentar):

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

Antwort1

[Ich muss zugeben, dass es mich ein wenig verwirrt, warum grundlegende Dienstprogramme wie mvoder cpaufgrund von nicht mehr funktionieren libstdc++.so.6. Unter der Annahme, dass dies der Grund ist, würde ich jedoch Folgendes versuchen]

Ihre busybox lsAusgabe zeigt, dass Sie es geschafft haben, rekursiv /usr/lib/x86_64-linux-gnu/libstdc++.so.6auf sich selbst zu verlinken. Glücklicherweise scheint es, dass Sie die eigentliche /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19Bibliothek nicht gelöscht oder überschrieben haben. Sie sollten also in der Lage sein, sie wiederherzustellen, indem Sie den symbolischen Link neu erstellen.

Das Problem entsteht, wenn einer sudooder lnbeide auf die libstdc++Bibliothek angewiesen sind. (Das ist vermutlich nicht der Fall, da Sie sich mit einer Shell am + + virtuellen Terminal bashanmelden können .)CtrlAltF3

Wenn sudoes defekt ist, sollten Sie immer noch in der Lage sein, aus dem Wiederherstellungsmodus in eine Root-Shell zu booten, wie in beschriebenWie boote ich in eine Root-Shell?. Anschließend müssen Sie das Root-Dateisystem im Lese-/Schreibmodus neu mounten.

mount -o remount,rw /

Danach können Sie versuchen, den defekten Link zu reparieren

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

(dadurch sollte einrelativer symbolischer Linkdas relativ zum Zielpfad aufgelöst wird /usr/lib/x86_64-linux-gnu/, ähnlich wie bei Ihrem .oldLink).

Angenommen, dies schlägt fehl, weil lnes von abhängt libstdc++.so, können Sie es mit der statisch verknüpften busyboxausführbaren Datei, die über ein integriertes verfügt, erneut versuchen ln:

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

Wenn dies funktioniert, können Sie exitmit der Root-Shell mit dem normalen Bootvorgang fortfahren.

verwandte Informationen