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