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