ACL を使って Linux を復元する方法

ACL を使って Linux を復元する方法

システム全体のバックアップを作成しdd、それを新しい(暗号化された)ドライブに復元したいと思います。rsync -ad新しく作成した ext4 ファイルシステムにファイルと権限を正常に復元できました(正常に起動し、これを使用してこれを書いています)が、マウントされたデバイスにアクセスできません/media/username(ファイルマネージャーでパーティションをクリックしてマウントするとします)。このディレクトリとマウントポイントは が所有していますroot:root。既知のファイル(たとえば 内のファイル)の権限は正しく設定されているため、バックアップ前もが所有していた/homeと想定しています。 に問題があると思います。/media/*rootACLs。

  • 復元する方法はありますかACLすべてを2度コピーしなくてもいいのですか?(私はこれガイドにはありますが、信頼性がないと書かれています。これが私の使用例に適しているかどうかはわかりません。また、Linux の所有権と権限を復元する必要はありません。すでに正しいはずなので、それを壊したくありません。おそらく、-sのオプションがgetfacl必要なのでしょうか?)
  • rsync他に省略されていて復元する必要があるものはありますか?
  • これを保存できず、すべてを再度コピーする必要がある場合、何を使用すればよいですか。ガイドに従ってtarコマンドを使用しましたが、2 つのコマンドをパイプするのは非常に時間がかかりましたtar

私が使うリナックスミント19.3

編集: バックアップ ( /mnt/) を確認しました。ACL は設定されています。

sudo getfacl /mnt/media/username/
getfacl: Removing leading '/' from absolute path names
# file: mnt/media/username/
# owner: root
# group: root
user::rwx
user:username:r-x
user:libvirt-qemu:--x
group::---
mask::r-x
other::---

編集2: すべてをコピーしてからいくつか変更を加えたので、ファイルの内容を上書きしない方法を希望します。

答え1

私の場合うまくいった解決策 (ACL と権限のみを復元し、ファイルを変更したくない場合):

cd /path/to/backup  # so that saved paths would be relative to backed up root
getfacl -R . > ~/facl.bak
cd /
setfacl --restore=/root/facl.bak

答え2

rsync -avXの代わりにを使用できますrsync -ad。ファイルの内容を再コピーせずに、不足している ACL を適用する必要があります。

-u変更されたファイルの更新を回避し、--existing新しいファイルの作成 (たとえば、ターゲットでファイルを削除した場合) を回避するには、フラグを追加します。

関連情報