FreeBSD восстановление /rescue
Я выполняю восстановление из предыдущей резервной копии моей системы 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
, чтобы восстановление не занимало больше места на диске, чем оригинал?
1 ответ
Как вы уже догадались, проблема здесь /rescue
не содержит много файлов - он содержит один файл (индекс) со многими именами (жесткие ссылки). В результате при резервном копировании или восстановлении /rescue
вам нужно использовать программное обеспечение, которое знает о жестких ссылках.
За rsync
это означает -H
флаг.
За tar
это не должно требовать особой магии: tar BSD (и tar GNU) достаточно умен, чтобы знать, что такое жесткая ссылка. Для других программ резервного копирования вам необходимо проверить документацию.
Если вы используете обычные инструменты Unix для создания резервных копий вашей системы (и захвата целых файловых систем), вам лучше использовать dump
а также restore
, Помимо возможности использовать снимки UFS, существуют и другие преимущества более традиционных утилит.