Im Allgemeinen würde ich zu einer Neuinstallation tendieren (von den Backups, die Sie unbedingt haben sollten). Aber ich fühle mich hackish, also hier ist ein anderer Weg (vorausgesetzt, Ihr System ist unter /target
gemountet ):
-
Rufen Sie eine Liste aller installierten Pakete ab, die Dateien in
/bin
enthalten :grep ^/bin/ /target/var/lib/dpkg/info/*.list | sed 's%^.*/\([^/\.]*\).list%\1%' >/tmp/pkglist
(Auf meinem Debian Squeeze-System sind das insgesamt 34 Pakete, von denen so ziemlich alle Kernpakete sind)
-
Laden Sie jedes dieser Pakete herunter (ich hatte keine Lust, dieses Bit zu schreiben, also gehen Sie einfach auf packages.ubuntu.com und laden Sie sie irgendwo unter
/target
herunter ). Wenn Sie Glück haben, können einige der Pakete noch in/target/var/cache/apt/archives
herumschwirren . -
Führen Sie für jedes Paket
/target/usr/bin/dpkg -x <package> /target
aus . Ich bin mir ziemlich sicherdpkg
ist heutzutage alles in sich abgeschlossen und sollte nichts in/bin
aufrufen selbst.
Sobald Sie das System wieder auf die Beine gestellt haben, sollten Sie sich vergewissern und einen apt-get --reinstall install <all the packages from step 1>
ausführen , weil (da Sie eine Vorabversion ausführen, was laut Sysadmin Cat auf Produktionssystemen verboten ist) die Versionen der Pakete, die Sie gerade extrahiert haben, sich wahrscheinlich von denen unterscheiden, die sich zuvor auf dem System befanden, und Sie Ich möchte sicherstellen, dass das System genau weiß, was was ist.
Während Ihre Strategie funktionieren kann (es gibt gute Chancen dafür, mehr wenn Sie nach dem Zurückkopieren des bin-Verzeichnisses eine apt-get-Neuinstallation aller Pakete in Ihrem System durchführen), kann es in Zukunft zu Problemen kommen, weil Sie möglicherweise bekommen ein instabiler Server.
Wenn mir das passiert wäre, würde ich neu installieren und aus dem täglichen Backup wiederherstellen. Sie haben ein tägliches Backup – einen Disaster-Recovery-Plan – nicht wahr?
Falls Sie keinen Notfallwiederherstellungsplan hatten, würde ich vorschlagen, alle Konfigurationsdateien und die Daten, die Sie aufbewahren möchten, zu sichern und mit einer Neuinstallation fortzufahren. Auf diese Weise stellen Sie sicher, dass Sie am Ende wieder einen stabilen Server haben.
Ich würde versuchen, eine VM zu erstellen und dann den Inhalt von /bin
zu kopieren zu Ihrer beschädigten Maschine. Das sollte Sie zum Laufen bringen. Führen Sie dann
dpkg --get-selections | awk '{print $1}' | xargs -l1 aptitude reinstall
Dadurch sollten alle Pakete neu installiert werden, die sich auf Ihrem System befanden.