Проверка архива перед распаковкой экономит время и нервы: она показывает, не повреждён ли файл при скачивании или копировании, и подходит ли указанный пароль, ещё до того, как вы потратите место на диске и минуты ожидания. Главный принцип прост: почти все архиваторы умеют тестировать архив командой test, а пароль проверяется той же операцией — если пароль неверный, тест завершится ошибкой расшифровки.
Ниже разобраны рабочие способы для Windows, Linux и macOS, различия между форматами ZIP, RAR и 7z, типичные ошибки и признаки того, что архив действительно повреждён, а не защищён паролем.
- Зачем проверять архив до распаковки
- Как это работает технически
- Проверка в Windows
- 7-Zip
- WinRAR
- Встроенные средства Windows
- Проверка в Linux
- Проверка в macOS
- Сводная таблица команд
- Как отличить неверный пароль от повреждённого архива
- Типичные ошибки при проверке
- Что делать, если архив повреждён
- Практические рекомендации
Зачем проверять архив до распаковки
Архив может «сломаться» по нескольким причинам: обрыв связи при скачивании, ошибка при копировании на флешку, сбой диска, повреждение при передаче через мессенджер или почту. Внешне файл выглядит нормально — размер есть, иконка на месте, но внутри часть данных искажена. Если начать распаковку, процесс оборвётся на середине, и вы получите частичные файлы, которые могут оказаться бесполезными.
Отдельная ситуация — зашифрованные архивы. Здесь две независимые проблемы:
- целостность данных — совпадает ли содержимое с тем, что было упаковано;
- правильность пароля — тем ли ключом шифровались данные.
Эти проверки связаны: тестирование зашифрованного архива требует расшифровки, поэтому одна команда одновременно отвечает на оба вопроса. Но важно понимать разницу в результатах: ошибка CRC означает физическое повреждение данных, а сообщение о неверном пароле — проблему с ключом шифрования.
Как это работает технически
При создании архива программа считает для каждого файла контрольную сумму (чаще всего CRC32) и записывает её внутрь архива вместе со сжатыми данными. При тестировании архиватор заново считает суммы и сравнивает их с записанными. Совпадение — данные целы. Расхождение — файл изменён или повреждён.
С зашифрованным архивом логика та же, но перед сравнением нужно расшифровать данные. Неверный пароль даёт бессмысленный набор байтов, контрольные суммы не сходятся, и программа сообщает об ошибке. Отсюда практический вывод: тест архива — это одновременно и проверка пароля, отдельной команды обычно не требуется.
Есть нюанс: в некоторых форматах имя файла тоже шифруется (например, опция шифрования имён в 7-Zip и RAR5). Если имена скрыты, то без правильного пароля вы даже не увидите список файлов — это первый быстрый способ понять, что пароль нужен и он либо верный, либо нет.
Проверка в Windows
7-Zip
Самый распространённый бесплатный вариант. Порядок действий:
- Щёлкните по архиву правой кнопкой мыши.
- Выберите пункт меню 7-Zip → «Протестировать» (Test).
- Если архив зашифрован, появится окно ввода пароля — введите его.
- Дождитесь завершения: в окне результатов будет строка «Всё нормально» (Everything is Ok) либо список ошибок с номерами повреждённых файлов.
Тест читает весь архив, но не записывает файлы на диск, поэтому проходит быстрее полной распаковки и не занимает место. Для больших многотомных архивов убедитесь, что все части лежат в одной папке и названы правильно — иначе тест прервётся с сообщением об отсутствии тома.
WinRAR
WinRAR имеет встроенную команду «Протестировать архив» — кнопка на панели инструментов после открытия архива или пункт в контекстном меню. Дополнительно полезна функция «Показать информацию» → вкладка с контрольными суммами: она отображает рассчитанные значения CRC для каждого файла, что удобно при сверке с суммами, опубликованными источником архива.
WinRAR также поддерживает записи восстановления (recovery record) в формате RAR: если архив слегка повреждён, но такая запись была добавлена при создании, WinRAR может исправить ошибки через меню «Инструменты» → «Восстановить архив». Это работает только для RAR и только при наличии записи восстановления — обычный ZIP так починить нельзя.
Встроенные средства Windows
Проводник Windows умеет распаковывать ZIP, но не имеет команды тестирования. Поэтому для проверки штатными средствами придётся просто распаковать архив во временную папку и удалить её после успеха. Это медленнее и требует места, зато не нужна установка программ. Для всех остальных форматов (7z, RAR) встроенных инструментов нет — понадобится сторонний архиватор.
Проверка в Linux
В Linux всё делается из терминала, и это самый гибкий вариант. Основные команды по форматам:
- ZIP:unzip -t archive.zip. Ключ -t тестирует архив без распаковки. Если нужен пароль, утилита запросит его интерактивно, либо можно передать его ключом -P ‘пароль’.
- RAR:unrar t archive.rar. Буква t — режим теста. Пароль запрашивается автоматически при необходимости.
- 7z:7z t archive.7z или 7z t -p’пароль’ archive.7z. Утилита p7zip обрабатывает и собственный формат, и zip, и rar (при установленных соответствующих модулях).
- tar.gz / tar.xz: классический tar не хранит контрольные суммы, поэтому полноценного теста нет. Косвенная проверка — gzip -t file.gz для самого сжатого потока или попытка распаковки в /dev/null: tar -tzf archive.tar.gz > /dev/null покажет, читается ли список файлов, хотя не проверит все данные.
Полезно направить вывод в журнал и проверить код возврата, особенно в скриптах:
unzip -t -P ‘пароль’ archive.zip >> test.log 2>&1 && echo OK || echo FAIL
Код возврата 0 означает успех, ненулевой — проблемы. Это позволяет автоматизировать проверку десятков архивов одним циклом.
Проверка в macOS
macOS построена на Unix, поэтому терминальные способы те же, что в Linux: unzip -t, unrar t, 7z t. Отличия в комплектации:
- unzip предустановлен и работает сразу.
- unrar и 7-Zip по умолчанию отсутствуют — их ставят через Homebrew (brew install unrar, brew install sevenzip или аналог; точное имя пакета зависит от версии репозитория).
- Встроенный «Архивная утилита» (Archive Utility) только распаковывает, тестировать она не умеет.
Графические альтернативы — сторонние архиваторы вроде Keka или The Unarchiver, но именно функция тестирования там реализована не везде полноценно, поэтому надёжнее терминал.
Сводная таблица команд
| Формат | Windows (GUI) | Linux / macOS (терминал) |
|---|---|---|
| ZIP | 7-Zip → Протестировать; WinRAR → Тест | unzip -t archive.zip |
| RAR | WinRAR → Протестировать; 7-Zip (чтение RAR) | unrar t archive.rar |
| 7z | 7-Zip → Протестировать | 7z t archive.7z |
| tar.gz | нет штатного теста | tar -tzf archive.tar.gz > /dev/null (частичная проверка) |
Как отличить неверный пароль от повреждённого архива
Это самая частая путаница. Сообщения разных программ выглядят по-разному, но смысл такой:
- «Неверный пароль», «Wrong password», «CRC failed in encrypted file» — данные расшифрованы неправильно. Либо пароль неверный, либо он верный, но применён к другому архиву. Повреждение тоже возможно, но реже.
- «Ошибка CRC», «Unexpected end of archive», «The archive is corrupt» в незашифрованном файле — физическое повреждение данных. Пароль здесь ни при чём.
- «Не удаётся открыть файл как архив» — файл скачан не полностью или это вообще не архив (например, HTML-страница ошибки вместо файла).
Практический ориентир: если тест выдаёт ошибку CRC только в одном-двух файлах из сотни, скорее всего, повреждение при передаче. Если ошибка возникает сразу на первом файле и повторяется на всех — первым делом перепроверьте пароль, включая раскладку клавиатуры, регистр и возможные похожие символы (ноль вместо буквы O, единица вместо l).
Типичные ошибки при проверке
- Проверка только первого тома многотомного архива. Тестировать нужно последний по порядку запуск или сам архив целиком — архиватор сам подхватит остальные части, если они рядом.
- Копирование пароля с лишним пробелом. Пробел в конце скопированной строки — невидимая, но частая причина отказа. Вводите пароль вручную или очищайте буфер.
- Разные кодировки имени файла. Архив, созданный в Windows с русскими именами файлов, при распаковке в Linux может показывать «кракозябры». Это не повреждение, а вопрос кодировки; современные версии unzip и 7z обычно справляются, но старые утилиты — нет.
- Доверие размеру файла. Совпадение размера с заявленным ещё не гарантирует целостность: байты могут быть искажены при том же объёме. Сверяйте контрольную сумму всего файла (SHA-256), если источник её публикует.
- Повторные попытки распаковки повреждённого архива. Если тест показал ошибку CRC, повторные попытки дадут тот же результат. Решение — перекачать файл или запросить его заново у отправителя.
Что делать, если архив повреждён
- Перекачайте файл из исходного источника — это решает большинство случаев.
- Для RAR с записью восстановления попробуйте функцию восстановления в WinRAR.
- Попробуйте другой архиватор: иногда один инструмент читает то, что другой отвергает, особенно на границе форматов.
- Если повреждён один том многотомного набора — замените только его.
- Если данные критичны, а копий нет, остаётся специализированное восстановление, но успех не гарантирован и зависит от масштаба повреждений.
Практические рекомендации
Оптимальный порядок работы с любым полученным архивом выглядит так:
- Убедитесь, что файл скачан полностью: сверьте размер, а лучше — контрольную сумму, если она опубликована.
- Запустите тест архива (не распаковку): 7-Zip → «Протестировать» в Windows, unzip -t, unrar t или 7z t в терминале.
- Введите пароль, когда программа его запросит, — успешный тест подтвердит и целостность, и правильность пароля.
- Только после сообщения «Всё нормально» распаковывайте в постоянное место.
Если вы регулярно работаете с большими архивами, поставьте 7-Zip на Windows и p7zip/unrar в Unix-системы: одна привычка запускать тест перед распаковкой избавляет от половины проблем с битыми файлами и забытыми паролями.
Материал носит информационный характер. При работе с архивами, полученными из недоверенных источников, соблюдайте осторожность: проверка целостности не защищает от вредоносного содержимого внутри архива — используйте антивирус и не запускайте файлы из непроверенных источников.
