В последние годы (с 2000 года) я время от времени копировал и копировал данные между дисками. Данные - это MP3, приложения, видео, резервные копии, электронные письма и многое другое, и они были перемещены / скопированы между несколькими дисками (и дисковыми массивами!) и среди нескольких файловых систем FAT, NTFS, ReiserFS, Ext3, Ext4, jfs…

Недавно мне стало известно, что некоторые архивы RAR, некоторые исполняемые файлы (которые на самом деле являются сжатыми архивами) и, возможно, другие файлы, которые я еще не заметил, повреждены. Я не знаю, есть ли образец здесь среди сжатых файлов. Я предполагаю, что это не ограничивается только там.

Чтобы начать с чего-то, я проверил целостность файлов rar в моем файловом сервере linux, используя команду find вместе с командой:

unrar t <rar files>

Это хорошо, но я не могу проверить целостность всех моих архивов, не говоря уже обо всех моих других файлах (документы, фотографии, MP3, WAV, ZIP, список, конечно, бесконечен)

Я хотел бы проверить все файлы несколькими способами.

  1. Проверка файловой системы, очевидно, хороша, но она не может помочь, если данные уже были повреждены перед копированием на диск, на котором они в данный момент находятся, верно? текущая файловая система - JFS.

  2. Может ли 2-й уровень проверки быть контрольными суммами MD5? У меня есть резервные копии всех моих данных, и я могу попытаться сопоставить контрольные суммы, но будут ли поврежденные файлы давать мне другие контрольные суммы? Это по-прежнему не решает проблему, если файл был поврежден до последней копии моих данных.

  3. Что еще я мог бы проверить, чтобы получить некоторое спокойствие?

  4. Огромная выгода при сравнении моих данных с моими резервными копиями; как со всем живым, мои данные «изменились» с течением времени, и резервные копии представляют собой моментальные снимки во времени, которые впоследствии никогда не менялись. С одной стороны, структура каталогов изменилась, файлы, очевидно, были удалены или перенесены в другие места. Очевидно, это будет беспорядок с использованием команды find для сопоставления файла между деревом резервных копий и текущим деревом!

Так кто-нибудь имел дело с чем-то подобным и может иметь скрипты (использующие locate или иным образом), которые могут быстро найти и использовать проиндексированные записи файлов?

1 ответ1

2

Контрольные суммы MD5/SHA являются золотым стандартом для проверки целостности файлов в наши дни. Если у вас есть оригиналы, из которых можно создать контрольные суммы, или у вас уже есть контрольные суммы, это будет наиболее тщательный способ проверки содержимого файлов. Однако это может быть утомительно, если у вас столько файлов, сколько вы предлагаете.

Кроме того, форматы файлов RAR , ZIP и 7Z должны содержать контрольную сумму CRC32 всех файлов, хранящихся внутри. Это слабее (т. Е. Более вероятно, что поврежденные данные останутся незамеченными), чем MD5 или SHA, но он все равно может обнаружить наличие повреждения при извлечении файла, что означает, что архив поврежден. Они автоматически проверяются каждый раз, когда вы извлекаете файл из архива. unrar -t <rar files> в основном просто проверяет контрольные суммы CRC32 для каждого файла в архиве.

Кроме того, инструменты архивации должны давать вам возможность генерировать файл .sfv при создании архива, который является дополнительным CRC32 архива в целом. Вы можете использовать это для дальнейшей проверки целостности архива.

Если вы копируете файлы из одной файловой системы в другую, вы можете использовать специальный инструмент для проверки того, что копия была успешной и правильной. Для Windows я использую TeraCopy - просто включите опцию «Проверить» перед началом копирования, и TeraCopy перечитает скопированные файлы, чтобы убедиться, что они действительно были записаны на диск в новом месте.

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