GNU/Linux >> Linux の 問題 >  >> Linux

/bin を削除しました。回復する最良の方法は何ですか?

一般的に、私は(絶対に持っているはずのバックアップから)再インストールに傾倒します。しかし、私はハックだと感じているので、別の方法があります (システムが /target の下にマウントされていると仮定します) ):

<オール>
  • /bin にファイルがあるすべてのインストール済みパッケージのリストを取得します :

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

    (私の Debian Squeeze システムでは合計 34 個のパッケージがあり、そのほとんどすべてがコアです)

  • これらのパッケージをそれぞれダウンロードします (この部分をスクリプト化するのは面倒なので、packages.ubuntu.com にアクセスして、/target の下のどこかにダウンロードしてください)。 )。運が良ければ、いくつかのパッケージがまだ /target/var/cache/apt/archives に出回っているかもしれません .

  • パッケージごとに /target/usr/bin/dpkg -x <package> /target を実行します .私は dpkg であるとかなり確信しています 最近はすべて自己完結型であり、/bin では何も呼び出すべきではありません

  • システムが元の状態に戻ったら、 apt-get --reinstall install <all the packages from step 1> を確認して実行する必要があります 、なぜなら (プレリリースを実行しているため、Sysadmin Cat は実稼働システムでは禁止されていると言っています) 抽出したばかりのパッケージのバージョンは、以前のシステムにあったバージョンとは異なる可能性が高いためです。何が何であるかをシステムが正確に認識できるようにする必要があります。


    あなたの戦略はうまくいくかもしれませんが (bin ディレクトリをコピーして戻してから、システム内のすべてのパッケージを apt-get で再インストールすると、その可能性は高くなります)、将来的に問題が発生する可能性があります。不安定なサーバー。

    それが私に起こった場合、私は再インストールして毎日のバックアップから復元します.毎日のバックアップ、つまり災害復旧計画がありますよね?

    災害復旧計画がない場合は、すべての構成ファイルと保持したいデータをバックアップし、再インストールに進むことをお勧めします。そうすれば、安定したサーバーで再び終了することが確実になります.


    VM を作成してから /bin の内容をコピーしてみます あなたの壊れたマシンに。これで起動して実行できるようになります。次に実行します

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

    システムにあったすべてのパッケージを再インストールする必要があります。


    Linux
    1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

    2. / bin/shが/bin/bashではなく/bin/ dashを指すのはなぜですか?

    3. Javaでメモリ不足の状態を処理する最良の方法は何ですか?

    1. Linuxでの‘/ usr / bin / [‘[角かっこ]コマンドの使用法は何ですか?

    2. /usr/sbin、/usr/local/sbin、/usr/local/bin の意味は何ですか?

    3. SELinuxを学ぶ最良の方法は何ですか?

    1. / usr/binと/usr/ local / bin Linuxの場合?

    2. Linux – / usr/binと/usr/sbinを/bin(gnu / linux)にマージしますか?

    3. 行「!/bin/sh -e」は何をしますか?