Brach die meisten Linux-Computerfunktionen mit schlechtem Symlink

553
LonelyWebCrawler

Ich verwende 64-Bit-Crunchbang, das auf Debian basiert.

Ich habe versucht, ein bestimmtes Problem mit libc6 zu beheben, und folgte naiv dem Rat einer askUbuntu-Antwort ( Link ), die mich dazu brachte, den folgenden Befehl auszuführen:

sudo ln -sf /lib32/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6 

Jetzt kann ich keinen einzelnen Terminalbefehl oder GUI-Programm ausführen. Am Terminal bekomme ich eine Vielzahl von Fehlern. Hier ist lszum Beispiel:

ls: Fehler beim Laden von gemeinsam genutzten Bibliotheken: libs.so.6: falsche ELF-Klasse: ELFCLASS32

sed: Fehler beim Laden von gemeinsam genutzten Bibliotheken: libs.so.6: falsche ELF-Klasse: ELFCLASS32

/ usr / bin / env: Fehler beim Laden von gemeinsam genutzten Bibliotheken: libs.so.6: falsche ELF-Klasse: ELFCLASS32

Datum: Fehler beim Laden von gemeinsam genutzten Bibliotheken: libs.so.6: falsche ELF-Klasse: ELFCLASS32

sed: Fehler beim Laden von gemeinsam genutzten Bibliotheken: libs.so.6: falsche ELF-Klasse: ELFCLASS32

GUI-Programme werden einfach nicht gestartet oder geben mir seltsame Fehlermeldungen.

Kurz gesagt, ich habe keine Möglichkeit, den Symlink zu löschen, der diese Katastrophe verursacht hat. Was kann ich tun, um meinen Computer wieder zum Laufen zu bringen?

0
Kann ich von einer Linux-Live-CD booten, die Festplatte einhängen und von dort aus reparieren? Ich habe das nicht getan, also bin ich nicht sicher, welche Berechtigungen Ihnen fehlen könnten. baochan vor 9 Jahren 0
Danke, wenn ich keine einfachere Lösung finde, kann ich dies versuchen. Ich weiß auch nicht über die Berechtigungen. LonelyWebCrawler vor 9 Jahren 0
@erlkoenig Ich glaube nicht, dass Sie eine große Auswahl haben, es sei denn, Sie haben busybox installiert ... und selbst dann kann es zu libc zurückverweisen Lawrence vor 9 Jahren 0

2 Antworten auf die Frage

0
cybernard

Der Ordner / lib32 kann nur 32-Bit-Bibliotheken enthalten. Sie haben in / lib32 einen Link zu libc.so.6 erstellt, der auf die 64-Bit-Version derselben Datei verweist. Besorgen Sie sich eine 32-Bit-Version von libc.so.6 und legen Sie sie im Ordner / lib32 ab.

Das ist der falsche Weg. OP hat eine Verbindung vom 32-Bit-Standort zum 64-Bit-Standort erstellt. Lawrence vor 9 Jahren 0
Ich dachte schon, aber ich kann die 32-Bit-Version im aktuellen Stand natürlich nicht bekommen. LonelyWebCrawler vor 9 Jahren 0
können Sie es auf einem anderen Computer herunterladen und auf einem Memory Stick ablegen? Hängen Sie den Memory Stick in Ihren Linux ein und kopieren Sie die Datei. cybernard vor 9 Jahren 0
Ich habe eine neue Frage gestellt und würde mich über Ihre Hilfe freuen: http://superuser.com/q/788304 LonelyWebCrawler vor 9 Jahren 0
0
Jason C

Da Sie Ihre libc aufgemischt haben und in der Regel jedes nützliche Dienstprogramm davon abhängt, können Sie von einer Live-CD / einem USB-Laufwerk nur einen Neustart durchführen und die Festplatte reparieren oder die Festplatte in den Computer eines anderen Computers stecken it) und von dort aus reparieren.

Um das Problem zu beheben, machen Sie das wieder rückgängig.

Ihre schlechte Wahl der -fOption für lnund die Annahme, dass keine Sicherungskopie der Originaldateien erstellt wurde, bedeutet /lib/x86_64-linux-gnu/libc.so.6jedoch, dass sie überschrieben wurde, wenn sie vor dem Ausführen dieses Befehls tatsächlich vorhanden war. In diesem Fall wäre es am besten, wenn Sie eine Kopie von einer anderen Stelle erhalten, hoffentlich eine kompatible Version. Führen Sie anschließend eine erzwungene Neuinstallation von libc durch, sobald Sie den Computer wieder betriebsbereit gemacht haben, nur um sicherzustellen, dass sich alle richtigen Versionen der richtigen Dateien im Ordner befinden richtige orte.

Wenn Sie nicht diese Datei hatten, dann haben Sie keine Sorgen.

Wenn Sie das alles aufgeräumt haben, sollten Sie weniger riskante Lösungen für Ihr Problem suchen, z. B. das Demaskieren und Installieren der richtigen Pakete für Ihre Plattform usw., anstatt sich mit symbolischen Links zu wichtigen Bibliotheken herumzubewegen.

Ich habe einen Live-USB-Computer gebootet und den fehlerhaften Symlink entfernt, aber jetzt startet mein Computer nicht mehr - wie Sie oben vermutet haben, wurde die ursprüngliche libc.so.6 gelöscht und wird für init benötigt. Woher soll ich die `libc.so.6` bekommen, um sie zu ersetzen? Google hat viele Ergebnisse. LonelyWebCrawler vor 9 Jahren 0
Ich habe dies zu einer separaten Frage gemacht: http://superuser.com/q/788304 LonelyWebCrawler vor 9 Jahren 0