1

Так что я искал это вверх и вниз, но, должно быть, делал что-то в корне неправильно. Что я хочу сделать:

Я настроил свой NAS для создания снимков моей домашней папки, файловая система btrfs. Это работает как следует и использует жесткие ссылки.

Я хочу скопировать весь каталог моментальных снимков для резервного копирования на usb-диск ext4, используя rsync -aH для сохранения жестких ссылок. Но жесткие ссылки не сохраняются после завершения rsync - я приведу минимальный пример, где я rsync файл 2 разных моментальных снимков (проверенных на наличие идентичных Inodes) на томе btrfs - просто в другой каталог - который также создает 2 различных файла. Я пропускаю опцию rsync, чтобы сделать эту работу? Или rsync просто неспособен сделать это? Неправильный инструмент для работы?

1 ответ1

3

Я не очень хорошо знаю rsync но если под "моментальными снимками" вы подразумеваете моментальные снимки Btrfs (сделанные с помощью btrfs subvolume snapshot …), то идентичные файлы в двух моментальных снимках не имеют жесткой связи.

Возможно, они разделяют пространство на (физическом) устройстве из-за поведения Btrfs при копировании при записи; их номера инодов одинаковы, но они логически существуют на разных устройствах. В этом контексте каждый подобъем Btrfs должен рассматриваться как отдельная файловая система.

Если вы можете, проверьте файлы, принадлежащие к различным снимкам с помощью stat . Вы увидите, что они сообщают разные идентификаторы устройства. Одинаковые номера инодов на разных устройствах ничего не значат.

По этой причине rsync не имеет простой подсказки, что файлы "должны" быть жестко связаны. Во-первых, они не связаны жесткими ссылками в вашем "каталоге моментальных снимков".

Я считаю, что btrfs send и btrfs receive - это инструменты для репликации иерархии снимков на другом компьютере (с файловой системой Btrfs). Я никогда не использовал их, поэтому я не могу направлять вас. Изучите man btrfs-send и man btrfs-receive .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .