如何使用 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避免建立新文件(例如,您已在目標中刪除它們)。

相關內容