Как восстановить Linux с помощью ACL

Как восстановить Linux с помощью ACL

Я создал ddрезервную копию всей системы и хотел бы восстановить ее на новый (зашифрованный) диск. Я успешно использовал ее rsync -adдля восстановления файлов и разрешений для недавно созданной файловой системы ext4 (я успешно загрузил ее и использую ее для записи этого), но я не могу получить доступ к устройствам, смонтированным в /media/username(скажем, я нажимаю на какой-то раздел в файловом менеджере, чтобы смонтировать его), этот каталог и точки монтирования принадлежат root:root. Разрешения известных файлов (например, вещей в /home) установлены правильно, поэтому я предполагаю, /media/*что принадлежал rootтакже до резервного копирования. Я думаю, что есть проблема сACLс.

  • Есть ли способ восстановитьACLбез необходимости копировать все второй раз? (Я нашелэтотруководство, но там говорится, что это ненадежно. Я не знаю, подойдет ли это для моего случая использования. Также мне не нужно восстанавливать владельца и разрешения Linux, это уже должно быть правильно, и я не хочу это нарушать. Может быть, мне нужен -sвариант getfacl?)
  • Есть ли еще что-то rsyncупущенное и что нужно восстановить?
  • Если сохранение невозможно и мне придется снова все копировать, что мне следует использовать? Руководство Я следовал использованной tarкоманде, но это было очень медленно, чтобы передать две tarкоманды.

я используюЛинукс Минт 19.3.

правка: Я проверил резервную копию ( /mnt/), я прав, списки контроля доступа установлены:

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создания новых файлов (например, если вы удалили их в целевом объекте).

Связанный контент