![mv: gemeinsam genutzte Objektdatei „libstdc++.so.6“ kann nicht geöffnet werden: zu große Verschachtelung von symbolischen Links](https://rvso.com/image/1000937/mv%3A%20gemeinsam%20genutzte%20Objektdatei%20%E2%80%9Elibstdc%2B%2B.so.6%E2%80%9C%20kann%20nicht%20ge%C3%B6ffnet%20werden%3A%20zu%20gro%C3%9Fe%20Verschachtelung%20von%20symbolischen%20Links.png)
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 mv
oder cp
aufgrund von nicht mehr funktionieren libstdc++.so.6
. Unter der Annahme, dass dies der Grund ist, würde ich jedoch Folgendes versuchen]
Ihre busybox ls
Ausgabe zeigt, dass Sie es geschafft haben, rekursiv /usr/lib/x86_64-linux-gnu/libstdc++.so.6
auf sich selbst zu verlinken. Glücklicherweise scheint es, dass Sie die eigentliche /usr/lib/x86_64-linux-gnu/libstdc++.so.6.19
Bibliothek 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 sudo
oder ln
beide auf die libstdc++
Bibliothek angewiesen sind. (Das ist vermutlich nicht der Fall, da Sie sich mit einer Shell am + + virtuellen Terminal bash
anmelden können .)CtrlAltF3
Wenn sudo
es 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 .old
Link).
Angenommen, dies schlägt fehl, weil ln
es von abhängt libstdc++.so
, können Sie es mit der statisch verknüpften busybox
ausfü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 exit
mit der Root-Shell mit dem normalen Bootvorgang fortfahren.