Я использую внешний жесткий диск с файловой системой ext4 для создания резервных копий. Используемое мной программное обеспечение для резервного копирования (faubackup) копирует файловую иерархию 1:1 в папку с меткой времени на жестком диске и создает инкрементные резервные копии таким образом, что жестко связывает новые копии файлов, содержимое которых не изменилось на тот же файл в соответствующей подпапке предыдущей резервной копии. Так как недавно у меня был диск с резервной копией, я хочу убедиться, что все записанные файлы действительно могут быть прочитаны без ошибок ввода-вывода, поэтому я знаю, что могу положиться на свою резервную копию.
Один из способов сделать это - прочитать весь раздел, например, dd
его в /dev/null
. Однако размер диска составляет 3 ТБ, и на это потребуется около 7 часов (через USB 3.0).
Другим способом было бы использовать e2fsck
с опцией -c
, но это также занимает много времени.
Я думаю, что должна быть возможность ускорить процесс, не проверяя весь диск, а только файлы, которые составляют лишь часть размера всего диска. Это можно сделать, например, записав все файлы в архив tar, который не записывается на диск, но отправляется в /dev/null
. Здесь проблема заключается в жестком связывании: если я скажу 10 инкрементных резервных копий, хранилище для этого опять-таки является лишь частью диска, но кажется, что оно примерно в 10 раз больше.
Мой вопрос: есть ли способ читать только файлы на диске, и только по одному в каждом наборе файлов, жестко связанных с одним и тем же пространством хранения? Или есть способ заставить e2fsck -c
или что-то подобное проверять только используемые части файловой системы (выделенные блоки)?