web-dev-qa-db-ja.com

rsyncによって作成されたファイルシステムのバックアップを復元する方法は?

Virtualmin/Webminでバージョン12.04を実行しています。

linux-imageパーティションがいっぱいだったので、今日不要な/bootファイルをすべて削除しようとしました。 Ask Ubuntuのガイドに従いましたが、Grubの破損などが発生しました。これは、推奨ガイドのコマンドが必要以上に削除されたためと思われます。

数時間後、ようやく新しいカーネルイメージをインストールし、新しいGrubを作成しましたが、/runディレクトリ内のすべてのファイルが削除され、おそらくそれらに関連する他のいくつかのファイル/ディレクトリが削除されたことがわかりましたそのディレクトリ内のパッケージ。どうしてそうなったのかわかりませんが、symlink /etc/resolv.conf --> /run/resolvconf/resolv.confへのリンクが見つからなかったので、Recovery Modeで起動したときにすでに奇妙なことがあることを知っていました。

とにかく、私はファイルシステムの完全なバックアップを持っています。これは、今日rsyncコマンド(Sudo rsync -ahe ssh ...、オプション:--delete --exclude=.gvfs --exclude=/proc --exclude=/dev --exclude=/sys)で作成されました。

/runディレクトリのみを復元しようとしましたが、運はありません。

私の質問は、同じrsyncコマンドを使用して、サーバー上のすべてのファイルをバックアップ場所のファイルに置き換えるだけですか? (はい、コマンドで「ソース」と「宛先」を交換する必要があることは知っています)

可能であれば、後で他にやるべきことはありますか?

5
Joachim

まず、現在のバックアップを持っていることに対する私の賛辞です-あなたはそこに勤勉の90パーセンタイルを達成しました。続行するには、これを行います:

  1. インストールCDからLive Ubuntu環境を起動します(またはサーバーCDを使用している場合は、[修復]オプションを選択します)。
  2. シェルウィンドウを開く
  3. ルートドライブを/ mntにマウントします。

    Sudo mount /dev/sda1 /mnt
    
  4. 2番目のマウントポイント/mnt2を作成し、そこにバックアップドライブをマウントします。

    Sudo mkdir /mnt2
    Sudo mount /dev/sdb1 /mnt2
    
  5. 次のように復元します

    for DIR in bin boot etc home lib lib64 opt root run sbin usr var; do
      Sudo rsync -aH --delete /mnt2/$DIR /mnt
    done
    

    スキップしたすべてのディレクトリ、devsysfstmpなどは基本的に空である必要があります。

  6. 復元が完了したら、/mntにchrootして、grubを更新してみてください。

    for DIR in dev proc sys; do
       Sudo mount --bind /$DIR /mnt/$DIR
    done
    Sudo chroot /mnt
    update-grub
    
  7. 再起動

これが機能しない場合は、再インストールして、/ homeディレクトリと必要なデータファイルを復元するだけです。

1
nortally