1

Я использую внешний жесткий диск с файловой системой ext4 для создания резервных копий. Используемое мной программное обеспечение для резервного копирования (faubackup) копирует файловую иерархию 1:1 в папку с меткой времени на жестком диске и создает инкрементные резервные копии таким образом, что жестко связывает новые копии файлов, содержимое которых не изменилось на тот же файл в соответствующей подпапке предыдущей резервной копии. Так как недавно у меня был диск с резервной копией, я хочу убедиться, что все записанные файлы действительно могут быть прочитаны без ошибок ввода-вывода, поэтому я знаю, что могу положиться на свою резервную копию.

Один из способов сделать это - прочитать весь раздел, например, dd его в /dev/null . Однако размер диска составляет 3 ТБ, и на это потребуется около 7 часов (через USB 3.0).

Другим способом было бы использовать e2fsck с опцией -c , но это также занимает много времени.

Я думаю, что должна быть возможность ускорить процесс, не проверяя весь диск, а только файлы, которые составляют лишь часть размера всего диска. Это можно сделать, например, записав все файлы в архив tar, который не записывается на диск, но отправляется в /dev/null . Здесь проблема заключается в жестком связывании: если я скажу 10 инкрементных резервных копий, хранилище для этого опять-таки является лишь частью диска, но кажется, что оно примерно в 10 раз больше.

Мой вопрос: есть ли способ читать только файлы на диске, и только по одному в каждом наборе файлов, жестко связанных с одним и тем же пространством хранения? Или есть способ заставить e2fsck -c или что-то подобное проверять только используемые части файловой системы (выделенные блоки)?

1 ответ1

2

GNU tar не копирует содержимое жестко связанных файлов несколько раз. Прочтите первый ответ на этот вопрос или официальную документацию по этой теме. Вы можете проверить это, отправив выходные данные (архив) tar через wc: tar cf - -C <mountpoint of your disk> . | wc -c и проверьте размер архива в байтах (вы можете сравнить это с результатом с опцией tar --hard-dereference).

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