Назад | Перейти на главную страницу

FreeBSD восстановление / спасение

Я выполняю восстановление из предыдущей резервной копии моей системы FreeBSD, и при восстановлении возникают проблемы. / (исключая точки монтирования). Проблема в том, что /rescue заполняет / раздел (до такой степени, что я не могу восстановить весь свой / раздел), занимая больше места, чем было изначально.

Я полагаю это потому что /rescue содержит ссылки, а не файлы, и эти файлы, а не ссылки, восстанавливаются в моем / раздел. Я пробовал восстанавливать оба tar и rsync:

( cd /mybak/ ; tar --one-file-system -cvf - . ) | ( cd /newroot/ ; tar -xpf - . )

и

/usr/local/bin/rsync -va --delete --one-file-system  /mybak/ /newroot/

Оба метода приводят к моей проблеме. Что я могу сделать для правильного восстановления (или первоначального резервного копирования) / раздел, в том числе /rescue, чтобы восстановление не занимало больше места на диске, чем исходное?

Как вы догадались, проблема здесь в /rescue не содержит много файлов - он содержит один файл (inode) с множеством имен (жесткие ссылки). В результате при резервном копировании или восстановлении /rescue вам необходимо использовать программное обеспечение, поддерживающее жесткие ссылки.

Для rsync это означает -H флаг.

Для tar это не должно требовать особого волшебства: BSD tar (и GNU tar) достаточно умен, чтобы знать, что такое жесткая ссылка. Для других программ резервного копирования вам необходимо проверить документацию.


Если вы используете обычные инструменты Unix для создания резервных копий вашей системы (и захвата целых файловых систем), вам может быть лучше использовать dump и restore. Помимо возможности использовать снимки состояния UFS, у более традиционных утилит есть и другие преимущества.