GNU/Linux >> Linux Esercitazione >  >> Linux

Ho appena cancellato /bin. Qual è il modo migliore per recuperare?

In generale, propenderei per una reinstallazione (dai backup che dovresti assolutamente avere). Ma mi sento un hacker, quindi ecco un altro modo (supponendo che il tuo sistema sia montato sotto /target ):

  1. Ottieni un elenco di tutti i pacchetti installati che hanno file in /bin :

    grep ^/bin/ /target/var/lib/dpkg/info/*.list | sed 's%^.*/\([^/\.]*\).list%\1%' >/tmp/pkglist
    

    (Sul mio sistema Debian Squeeze ci sono un totale di 34 pacchetti, praticamente tutti core)

  2. Scarica ciascuno di quei pacchetti (non potrei essere disturbato a scrivere questo bit, quindi basta andare su packages.ubuntu.com e scaricarli da qualche parte sotto /target ). Se sei fortunato, alcuni dei pacchetti potrebbero essere ancora in giro in /target/var/cache/apt/archives .

  3. Per ogni pacchetto, esegui /target/usr/bin/dpkg -x <package> /target . Sono abbastanza certo dpkg è tutto autonomo in questi giorni e non dovrebbe richiamare nulla in /bin stesso.

Una volta che hai rimesso in piedi il sistema, dovresti assicurarti di eseguire un apt-get --reinstall install <all the packages from step 1> , perché (dal momento che stai eseguendo una pre-release, cosa che Sysadmin Cat dice è un no-no sui sistemi di produzione) è probabile che le versioni dei pacchetti che hai appena estratto siano diverse da quelle che erano sul sistema prima, e tu vorrai assicurarti che il sistema sappia esattamente cosa è cosa.


Sebbene la tua strategia possa funzionare (ci sono buone possibilità, di più se una volta copiata la directory bin, esegui una reinstallazione apt-get di tutti i pacchetti nel tuo sistema), può causare problemi in futuro perché potresti ottenere un server instabile.

Se ciò fosse accaduto a me, reinstallerei e ripristinerei dal backup giornaliero. Hai un backup giornaliero - un piano di ripristino di emergenza - vero?

Nel caso in cui non si disponesse di un piano di ripristino di emergenza, suggerirei di eseguire il backup di tutti i file di configurazione e dei dati che si desidera conservare e procedere con una reinstallazione. In questo modo sarai sicuro di finire di nuovo con un server stabile.


Proverei a creare una VM quindi a copiare il contenuto di /bin alla tua macchina danneggiata. Questo dovrebbe metterti in moto. Quindi esegui

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

che dovrebbe reinstallare tutti i pacchetti che erano sul tuo sistema.


Linux
  1. /usr/bin Vs /usr/local/bin Su Linux?

  2. Perché /bin/sh punta a /bin/dash e non a /bin/bash??

  3. Cosa fa la riga '!/bin/sh -e'?

  4. Installa i binari in /bin, /sbin, /usr/bin e /usr/sbin, interazioni con --prefix e DESTDIR

  5. Qual è il modo migliore per gestire le condizioni di memoria insufficiente in Java?

Qual è il significato di /usr/sbin, /usr/local/sbin e /usr/local/bin?

Differenza tra /bin e /usr/bin

Qual è il modo migliore per imparare SELinux?

Qual è la differenza tra /tmp e /run?

Qual è il modo migliore per impostare una variabile d'ambiente in .bashrc?

Qual è il modo migliore per gestire le autorizzazioni per i dati www dell'utente di Apache 2 in /var/www?