GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ich habe gerade /bin gelöscht. Was ist der beste Weg, um sich zu erholen?

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 ):

  1. 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)

  2. 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 .

  3. Führen Sie für jedes Paket /target/usr/bin/dpkg -x <package> /target aus . Ich bin mir ziemlich sicher dpkg 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

aus
dpkg --get-selections  | awk '{print $1}' | xargs -l1 aptitude reinstall

Dadurch sollten alle Pakete neu installiert werden, die sich auf Ihrem System befanden.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Linux – Zusammenführen von /usr/bin und /usr/sbin in /bin (gnu/linux)?

  3. Warum zeigt /bin/sh auf /bin/dash und nicht auf /bin/bash?

  4. Was macht die Zeile '!/bin/sh -e'?

  5. Was ist der Unterschied zwischen #!/usr/bin/env bash und #!/usr/bin/bash?

/usr/bin vs. /usr/local/bin Unter Linux?

Installieren Sie Binärdateien in /bin, /sbin, /usr/bin und /usr/sbin, Interaktionen mit --prefix und DESTDIR

Was ist der beste Weg, um mit Speichermangel in Java umzugehen?

Unterschied zwischen /bin und /usr/bin

Wie lernt man SELinux am besten?

Was ist der Unterschied zwischen /tmp und /run?