it-swarm.com.de

Versehentlich gelöscht /usr/lib/*.so.*

Während der Installation von MRTG habe ich versehentlich /usr/lib/*.so.* und /usr/lib/*.so gelöscht

Ich kann mein System jetzt nicht mehr starten, es bleibt auf dem Begrüßungsbildschirm hängen und wenn ich die PAGEDOWN-Taste drücke, kann ich feststellen, dass einige Dinge nicht geladen werden können.

DHCP und WebMin werden jedoch ausgeführt, und in Webmin werden die Systemprotokolle angezeigt, in denen angegeben ist, dass Tassen nicht geladen werden, weil libpipeline.so.1 fehlt, und mehrere andere.

Mein Computer läuft 11.04

8
Ahsan

Da Sie nur _/usr/lib/*_ und nicht _/lib/*_ gelöscht haben, können Sie wahrscheinlich wiederherstellen. Ich denke, dass alle Programme, die Sie kritisch benötigen, um Ihr System wiederherzustellen, nur Bibliotheken von _/usr/lib_ verwenden.

Booten Sie zu einer Text-Login-Eingabeaufforderung. Wenn beim normalen Start keine _login:_ Eingabeaufforderung im Textmodus angezeigt wird, starten Sie mit nur minimalen Diensten. drücken und halten Shift wenn Ihr Computer die Grub-Eingabeaufforderung anzeigt; Sie müssen die Taste drücken, nachdem das BIOS die Tastatur initialisiert hat, aber bevor Grub geladen wird, was auf einigen Computern nur ein kleines Zeitfenster lässt und möglicherweise mehrere Versuche erfordert. Drücken Sie an der Grub-Eingabeaufforderung Down um den Einzelbenutzermodus-Starteintrag zu markieren und diesen zu starten.

Wenn Sie eine Befehlszeile haben, führen Sie _apt-get --reinstall install PACKAGE1 PACKAGE2 …_ aus, um die Pakete mit den Dateien in _/usr/lib_ neu zu installieren. Sie können dieses Shell-Snippet ausführen, um die Liste der Namen der neu zu installierenden Pakete abzurufen:

_egrep -l '/usr/lib/[^/]*\.so\.' /var/lib/dpkg/info/a*.list |
sed -e 's!^/var/lib/dpkg/info/!!' -e 's!\.list$!!'
_

Für einige Paketinstallationsskripten müssen möglicherweise Bibliotheken aus anderen Paketen vorhanden sein. Daher müssen Sie die Neuinstallationen möglicherweise in einer bestimmten Reihenfolge ausführen. Wenn Sie feststellen, dass die Installationsskripte eines Pakets versuchen, ein bestimmtes Programm zu verwenden, können Sie mit ldd herausfinden, welche Bibliotheken dieses Programm benötigt. Dies zeigt beispielsweise an, dass in python drei Bibliotheken fehlen, die Sie neu installieren müssen:

_$ ldd /usr/bin/python | grep 'not found'
    libssl.so.0.9.8 => not found
    libcrypto.so.0.9.8 => not found
    libz.so.1 => not found
_

_dpkg -S /usr/lib/libz.so.1_ gibt an, dass diese Datei von _zlib1g_ stammt, und so weiter.

Wenn Sie feststellen, dass _apt-get_ keine Pakete herunterladen kann, laden Sie zunächst einige Schlüsselpakete von einer Live-CD herunter. zlib1g und libssl0.9.8 sind zwei Pakete, die Sie sehr wahrscheinlich früh benötigen.

5
Gilles

Sie können eine Woche damit verbringen, alles zu finden, was fehlt, oder Sie können eine Stunde damit verbringen, eine Neuinstallation von der CD durchzuführen und dann alle Ihre alten Pakete zurückzubekommen.

Ich würde vorschlagen, dass Sie zuerst in eine LiveCD-Umgebung booten, um Backups von Dingen zu erhalten (kopieren Sie sie auf ein externes USB-Laufwerk oder eine andere Partition) und starten Sie dann erneut.

10
Oli

/usr/lib enthielt, ehrlich gesagt, die gemeinsam genutzten Bibliotheken von alles mit Ausnahme von startkritischer Software (das ist, was in /lib/ und Dingen enthalten ist, die Sie nicht über den Paketmanager installiert haben (normalerweise /usr/local/lib).

Kurzversion, Sie haben gerade Ihr System abgespritzt.

Nun, wenn Sie immer noch /var/cache/apt/archives voll mit Dingen haben, könnten Sie mit ein wenig vernünftiger Magie die Situation retten.

Überprüfen Sie, ob es noch Archive für die folgenden Pakete enthält:

libxapian
libsigc++
apt
libcwidget
libsqlite
libboost-iostreams 

Diese Pakete enthalten Bibliotheken in /usr/lib, die aptitude benötigt, um zu funktionieren. Wenn Sie die Pakete in /var/cache/apt/archives finden, können Sie sie manuell mit dpkg -i <packagename neu installieren, sobald sie alle installiert sind sollte fähig sein zu rennen.

Durch Ausführen des Befehls aptitude reinstall ~i erzwingen Sie eine Neuinstallation aller bereits installierten Pakete, die hoffentlich Ihr System wiederherstellen sollten. Ich kann keine absoluten Garantien geben, weil der Schaden, den Sie angerichtet haben, in diesem Fall wirklich spektakulär ist ...

3
Shadur

Ich wäre versucht, von einer Ubuntu 11.04-Live-CD zu booten und zu versuchen, die fehlenden Dateien zurück zu kopieren.

Vergewissern Sie sich, dass alle vom Benutzer erstellten Datendateien ordnungsgemäß gesichert wurden, bevor Sie etwas unternehmen. Wenn nicht, würde ich eine Live-CD booten, die die Festplatte schreibgeschützt einbinden und so schnell wie möglich Backups erstellen.

1
RedGrittyBrick

Als ich etwas Ähnliches tat, hatte ich das Glück, es zu bemerken, bevor ich einen Neustart versuchte. Zu diesem Zeitpunkt funktioniert Ihr System noch größtenteils. Mein Ansatz war es, eine Virtualbox mit der gleichen Version des Betriebssystems zu erstellen und die fehlenden Dateien von dieser zu kopieren. Wenn Sie ssh-Zugriff auf Ihren virtualbox-Gast zulassen, können Sie rsync von einem Terminal auf Ihrem Hauptsystem aus verwenden, um nur die fehlenden Dateien und Links einzusaugen. In meinem Fall fehlten nur wenige Dateien, so dass es am einfachsten/sichersten war, manuell mit scp zu kopieren. Folgendes ist also ungetestet (!)

Sudo rsync -avu [email protected]:/usr/lib /usr/lib

-a ist der Archivierungsmodus (rekursiv, kopiert Symlinks und Attribute, einschließlich Zeitstempel, Berechtigungen usw.)

-u überspringt, wenn die Zielkopie neuer ist

-v ist ausführlich

0
Kim SJ