すべてのLinuxディストリビューションからシステムのRsyncバックアップを復元する

すべてのLinuxディストリビューションからシステムのRsyncバックアップを復元する

次のエイリアスを使用して、Ubuntu 22.04 LTSのルートディレクトリを外部フラッシュドライブにバックアップしました。

alias backup='sudo rsync -aAXHS --info=progress2 --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*", "/USBDrive", "/lost+found"} / /USBDrive && notify-send -t 10000 "Backup complete"'

私のUSBドライブのファイルシステムはext4です。

これが最善のアプローチではない可能性があることを知っていますが、いくつかの問題が発生して問題が解決することを確認するには、再インストールする必要があります。

次の記事を見ましたが、簡単に見せて、後で試してみることもできます。

完全なルートディレクトリ(/)をコピーして、オペレーティングシステムを新しいコンピュータに転送しますか?

ルートファイルシステムのバックアップと復元(Ubuntu 20.04)

それで、私の質問は「現在持っているバックアップに関する提案はありますか?」です。私が示すように、ルートディレクトリを復元するのは面倒です。かなり簡単な方法を知っている人がいない場合は、単にホームディレクトリを復元するだけです。私はすべてのLinuxディストリビューションでホームディレクトリをバックアップして復元する方法を探しています(好ましくは他のものをインストールせずにこれがrsyncコマンドを使用するようになった動機でした)。同じ親バージョンのない新しいディストリビューション(DebianやArchなど)に移動する場合は、同じコンピュータに同じOSを再インストールした後に復元するためにrsyncコマンドでソースとターゲットを置き換えるのと同じくらい簡単ですか? Linux? gitリポジトリも私のホームディレクトリに複製されています。これがどのような違いがあるのか​​、そしてそれがリポジトリの一般的な慣行であるかどうかはわかりません。 Ubuntu 22.04 LTSから復元すると、バックアップは維持されます。 .apt パッケージマネージャがインストールしたパッケージです。

修正する:

roaimaの答えは、ターゲットディスクをマウントした後、ライブディスクを使用して私に効果的でした。これはaptパッケージマネージャを使用してインストールされたパッケージを維持しませんでしたが、それは期待されていました。したがって、gitリポジトリからプログラムを再構築する必要があります。別の親オペレーティング・システムを使用する別のオペレーティング・システムにマイグレーションする場合。 Arch Linuxはルートツリーが異なるため、ホームディレクトリ以上のものを復元しているかどうかはわかりません。

答え1

バックアップコマンドがありませんが、--numeric-idsローカルにコピーするので問題はありません。

バックアップを復元するには、ソースパラメータとターゲットパラメータを置き換えます。--dry-runテストするときは、このオプションを念頭に置いてください。

ホームディレクトリのみを復元することを選択できます。コピーが完了したら、所有者とグループが正しいことを確認してください。 (新しいOSをインストールしたので、ターゲットユーザーのuidとgidがバックアップと同じであると仮定しないでください。)

find /home/whoever -user 12345 -exec chown newuser {} +
find /home/whoever -group 12345 -exec chgrp newgroup {} +

関連情報