GNU/Linux >> Znalost Linux >  >> Linux

Právě jsem smazal /bin. Jaký je nejlepší způsob, jak se zotavit?

Obecně bych se přikláněl k reinstalaci (ze záloh, které byste bezpodmínečně měli mít). Ale cítím se hackeře, takže je tu jiný způsob (za předpokladu, že váš systém je připojen pod /target ):

  1. Získejte seznam všech nainstalovaných balíčků, které mají soubory v /bin :

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

    (Na mém systému Debian Squeeze je to celkem 34 balíčků, z nichž téměř všechny jsou základní)

  2. Stáhněte si každý z těchto balíčků (nemohl jsem se obtěžovat napsat tento bit, takže stačí kliknout na packages.ubuntu.com a stáhnout je někam pod /target ). Pokud budete mít štěstí, některé balíčky se mohou stále pohybovat v /target/var/cache/apt/archives .

  3. Pro každý balíček spusťte /target/usr/bin/dpkg -x <package> /target . Jsem si docela jistý dpkg je v dnešní době vše soběstačné a nemělo by v /bin na nic volat sám.

Jakmile postavíte systém zpět na nohy, měli byste se ujistit a spustit apt-get --reinstall install <all the packages from step 1> , protože (protože spouštíte předběžnou verzi, o které Sysadmin Cat říká, že v produkčních systémech je ne-ne), verze balíčků, které jste právě extrahovali, se pravděpodobně budou lišit od těch, které byly v systému dříve, a vy Chci se ujistit, že systém přesně ví, co je co.


I když vaše strategie může fungovat (existuje dobrá šance, spíše pokud po zkopírování zpět adresáře bin provedete apt-get reinstalaci všech balíčků ve vašem systému), může to způsobit problémy v budoucnu, protože můžete získat nestabilní server.

Pokud by se mi to stalo, přeinstaloval bych a obnovil bych z denní zálohy. Máte denní zálohu – plán obnovy po havárii – ne?

V případě, že jste neměli plán obnovy po havárii, navrhoval bych zálohovat všechny konfigurační soubory a data, která chcete zachovat, a pokračovat v přeinstalaci. Budete tak mít jistotu, že opět skončíte se stabilním serverem.


Zkusil bych vytvořit virtuální počítač a poté zkopírovat obsah /bin k vašemu poškozenému stroji. To by vás mělo nastartovat. Poté spusťte

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

který by měl přeinstalovat všechny balíčky, které byly ve vašem systému.


Linux
  1. Jaké je použití příkazu „/usr/bin/[“ [hraná závorka] v Linuxu?

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?

  1. Co dělá řádek '!/bin/sh -e'?

  2. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  3. Jaký je rozdíl mezi #!/usr/bin/env bash a #!/usr/bin/bash?

  1. Jaké jsou významy /usr/sbin, /usr/local/sbin a /usr/local/bin?

  2. Jaký je nejlepší způsob, jak se naučit SELinux?

  3. Jaký je rozdíl mezi /tmp a /run?