BTRFSパーティションのバックアップについて質問があります。
/dev/sda1にBTRFSパーティションがあり、/dev/sdb1にBTRFSがある外付けハードドライブがあるとします。
次のコマンドを実行して初期バックアップを作成できることを発見しました。
btrfs replace start /dev/sda1 /dev/sdb1
その後、2つを変更しました。
- SDA1に新しい汎用ファイルを作成します。
- SDA1で新しいBTRFSスナップショットを作成します。
さて、外付けハードドライブSDB1(「バックアップ」)をSDA1にソートしたいと思います。したがって、両方のファイルはBTRFS関連エントリ(スナップショット)です。
どうすればいいですか?
そのため、BTFS機能(スナップショット)も同期するrsyncに対応する機能を探しています。
rsync -avr --delete <mount point sda1> <mount point sdb1>
ありがとう
答え1
置換コマンドはsda1をバックアップせずにファイルシステムからsda1をsdb1に置き換えますが、単一のデバイスファイルシステムであり、btrfsは交換時にsda1のデータを消去しないため、最終的にsda1の同じコピーファイルシステムになります。 。ただし、両方とも同じUUIDを持ち、現在同じUUIDを持つ2つのbtrfsファイルシステムをマウントすると、大量のデータ破損が発生する可能性があるため、これをしたくありません。(btrfswikiのトラップページ参照)。 btrfsの増分バックアップ機能を使用するには、バックアップドライブ/ dev / sdb1を新しいbtrfsファイルシステムにフォーマットする必要があります。次に、次のコマンドを使用して、ファイルシステムにバックアップする水サブボリュームの読み取り専用スナップショットを作成する必要があります。
btrfs su sn -r @subvolume-name @subvolume-name-RO
各サブボリュームに。その後、空のbtrfsファイルシステムをマウントし、次を実行する必要があります。
btrfs send /path/to/@subvolume-name-RO | btrfs rec /path/to/backup-directory/
これは最初の転送になり、btrfsは今回すべてのデータを転送する必要があります。次回そのドライブにバックアップを送信する場合は、増分転送を使用して、最後のバックアップが転送されてから変更されたデータのみを送信できます。また、書き込み中にコピー機能を使用するため、スペースも大幅に節約されます。両方のファイルシステムで最新のスナップショットを維持してください。完了したら、送信されたスナップの名前を希望の名前に変更できます。
別のスナップを送信するには、元のスナップの名前を変更し、次の新しいスナップを撮ることができます。
mv @subvolume-name-RO @subvolume-name-RO-old
btrfs su sn -r @subvolume-name @subvolume-name-RO
その後、送信を使用して最新のスナップショットを送信できます。
btrfs send -p @subvolume-name-RO-old @subvolume-name-RO | btrfs rec /path/to/backup-directory/
以前のスナップショットがまだバックアップドライブに残っている場合は、新しいスナップショットを送信し、最後のスナップショット以降に変更をコピーするだけです。