如何使用 ACL 恢复 Linux

如何使用 ACL 恢复 Linux

我创建了dd整个系统的备份,我想将其恢复到新的(加密的)驱动器。我成功地用于rsync -ad恢复新创建的 ext4 文件系统的文件和权限(我成功启动了它并使用它来编写此内容),但我无法访问安装在的设备/media/username(假设我单击文件管理器中的某个分区来安装) it),该目录和挂载点归root:root.已知文件(例如 中的内容/home)的权限设置正确,因此我假设在备份之前也/media/*属于该文件。root我猜有问题前交叉韧带s。

  • 有办法恢复吗前交叉韧带无需再次复制所有内容? (我已经发现指南,但它说它不可靠。我不知道这是否适合我的用例。另外,我不需要恢复 Linux 所有权和权限,这应该已经是正确的,我不想破坏它。也许-s选项getfacl是我需要的?)
  • 还有什么rsync遗漏需要恢复吗?
  • 如果无法保存此内容并且我必须再次复制所有内容,我应该使用什么。指南我遵循了使用的tar命令,但是通过管道传输两个命令真的很慢tar

我用Linux 薄荷 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::---

edit2:自从复制了所有内容后,我做了一些更改,所以我更喜欢不会覆盖文件内容的方法。

答案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避免创建新文件(例如,您已在目标中删除它们)。

相关内容