Как проверить целостность установщика после копирования

Самый надёжный способ проверить целостность установщика после копирования — сравнить его контрольную сумму с суммой исходного файла. Если значения совпадают, файл скопирован побитово точно и будет работать так же, как оригинал. Ниже — как это сделать на Windows, macOS и Linux стандартными средствами, без установки дополнительного ПО.

Зачем вообще проверять файл после копирования

Копирование кажется простой операцией, но на практике файл может «доехать» до места назначения с ошибками. Причины разные:

  • обрыв или нестабильность соединения при передаче по сети, через облачный диск или мессенджер;
  • сбой флешки или внешнего диска — особенно старых, перегретых или дешёвых накопителей;
  • прерывание копирования (извлечение носителя, отключение питания, сон компьютера) с последующим «докачиванием»;
  • повреждение при архивировании и распаковке, если промежуточный архив сам был неполным;
  • редко, но встречается подмена файла вредоносным ПО — тогда проверка суммы ещё и покажет, что файл отличается от оригинала.

Повреждённый установщик обычно проявляет себя уже при запуске: ошибка распаковки, сообщение о повреждённом архиве, установка, обрывающаяся на середине. Но иногда дефектный файл запускается и ставит систему частично — это хуже явной ошибки. Поэтому проверку лучше делать до запуска установщика, а не после неудачной установки.

Принцип работы контрольных сумм

Контрольная сумма (хеш) — это короткая строка фиксированной длины, которая вычисляется из содержимого файла по специальному алгоритму. Изменение хотя бы одного байта внутри файла даёт совершенно другую сумму. Алгоритмы различаются длиной и стойкостью:

  • CRC32 — быстрый, но слабый; годится для проверки случайных повреждений, но не защищает от намеренной подмены;
  • MD5 — долгое время был стандартом, сейчас считается устаревшим для задач безопасности, хотя для проверки случайных порчи при копировании всё ещё приемлем;
  • SHA-256 — актуальный стандарт. Именно его обычно публикуют разработчики рядом со ссылками на скачивание дистрибутивов.

Для проверки после копирования достаточно любого из этих алгоритмов, если вы сравниваете два файла между собой. Если же вы сверяетесь с суммой, опубликованной разработчиком, используйте тот алгоритм, который указан в публикации — чаще всего SHA-256.

Общий порядок действий

  1. Вычислите контрольную сумму исходного файла там, где он хранился (или возьмите опубликованную разработчиком).
  2. Вычислите сумму копии тем же алгоритмом.
  3. Сравните строки посимвольно. Совпадают — файл цел. Различаются хотя бы в одном символе — копия повреждена или заменена.
  4. При несовпадении удалите копию и повторите копирование, затем проверьте снова. Если сумма не сходится повторно — проблема в носителе или канале передачи, а не в разовом сбое.

Важно: сравнивайте суммы, вычисленные одним и тем же алгоритмом. Сумма MD5 никогда не совпадёт с суммой SHA-256 даже для идентичных файлов.

Проверка в Windows

Через PowerShell

PowerShell установлен во всех современных версиях Windows. Откройте его (меню «Пуск» → наберите PowerShell) и выполните команду, подставив свой путь к файлу:

Get-FileHash «D:\Install\program-setup.exe» -Algorithm SHA256

Команда выведет строку вида «A3F1…» — это и есть контрольная сумма. Повторите то же для второго файла и сравните результаты. Параметр -Algorithm позволяет указать MD5 или SHA1, если нужно свериться именно с ними.

Через командную строку (certutil)

В классической командной строке работает встроенная утилита certutil:

certutil -hashfile «D:\Install\program-setup.exe» SHA256

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

Графические альтернативы

Если командная строка некомфортна, существуют бесплатные утилиты с интерфейсом: они добавляют пункт «CRC SHA» в контекстное меню проводника или показывают сумму в отдельном окне после выбора файла. Принцип тот же: выбираете файл, получаете строку, сравниваете. Названия конкретных программ здесь не принципиальны — главное, чтобы утилита поддерживала SHA-256 и была скачана с официального сайта разработчика.

Проверка в macOS

Откройте «Терминал» и выполните:

shasum -a 256 /Users/имя/Downloads/program-setup.dmg

Для MD5 используется команда md5 путь_к_файлу. Результат выводится сразу в терминал. Дальше — то же сравнение двух строк.

Проверка в Linux

В любом дистрибутиве есть готовые команды:

  • sha256sum /path/to/installer.iso — сумма SHA-256;
  • md5sum /path/to/installer.iso — сумма MD5.

Удобный приём: если суммы сохранены в текстовые файлы, можно сравнить их одной командой. Например, sha256sum -c sums.txt проверит все файлы, перечисленные в списке, и сообщит статус по каждому: OK или FAILED.

Откуда взять эталонную сумму

Есть три типичные ситуации:

  • Копия с другого своего диска или раздела. Вычислите сумму оригинала прямо на месте хранения — это самый точный вариант, потому что сравниваются фактические байты, а не чьи-то публикации.
  • Файл скачан из интернета. Многие разработчики публикуют контрольные суммы рядом со ссылкой на загрузку (обычно мелким текстом «SHA-256» или в отдельном файле .sha256/.txt). Скопируйте опубликованную строку и сверьтесь со своей.
  • Файл получен через мессенджер или облако без опубликованных сумм. Тогда попросите отправителя вычислить сумму у себя и прислать её текстом. Это занимает минуту и избавляет от догадок.

Если эталонной суммы нет нигде, косвенные признаки целостности — размер файла в байтах (не в мегабайтах «на глаз», а точно) и корректная цифровая подпись. Размер должен совпадать байт в байт; расхождение хотя бы на единицу означает повреждение. Цифровую подпись в Windows можно посмотреть в свойствах файла на вкладке «Цифровые подписи»: если подпись есть и система сообщает, что она действительна, файл дошёл без изменений после момента подписания.

Типичные ошибки при проверке

  • Сравнение разных алгоритмов. У вас MD5, у отправителя SHA-256 — строки не совпадут, хотя оба файла целы. Всегда уточняйте алгоритм.
  • Лишние пробелы и регистр. При ручном сравнении легко пропустить лишний пробел в конце строки. Надёжнее вставить обе суммы в текстовый редактор и использовать поиск, либо сравнивать программно.
  • Проверка до завершения копирования. Сумма незавершённого файла, разумеется, не сойдётся. Дождитесь окончания операции.
  • Хранение суммы на том же носителе, что и файл. Если флешка сбоит, она может «испортить» и записанную рядом эталонную сумму. Эталон лучше держать отдельно.
  • Игнорирование несовпадения. Иногда файл «почти работает», и возникает соблазн оставить его. Частично повреждённый установщик — источник трудно диагностируемых проблем при установке; проще перекопировать.

Что делать, если суммы не совпадают

  1. Не запускайте установщик с копии.
  2. Удалите повреждённую копию.
  3. Повторите копирование, желательно другим способом: другой порт, другой кабель, другой носитель или заново через сеть.
  4. Снова вычислите сумму. Совпала — вопрос закрыт. Не совпала повторно — источник или канал ненадёжен: проверьте исходный файл на месте хранения, протестируйте носитель средствами системы или попробуйте скачать файл заново из первоисточника.

Отдельный случай: сумма не совпадает с опубликованной разработчиком, хотя файл качался напрямую с официального сайта. Возможные причины — вы сверяетесь с суммой другой версии сборки или используете другой алгоритм. Перепроверьте версию и алгоритм, прежде чем подозревать худшее.

Когда проверка особенно нужна

  • большие образы дисков и дистрибутивы операционных систем, которые записываются на загрузочные флешки;
  • файлы, переданные через несколько звеньев: облако → чужой компьютер → флешка;
  • старые или активно используемые USB-накопители, у которых уже случались сбои;
  • установщики, критичные для работы: драйверы оборудования, инструменты для восстановления данных, корпоративное ПО;
  • любые файлы, полученные из источников, которым нельзя полностью доверять.

Для небольших файлов, скопированных локально на исправном диске, риск повреждения минимален, и формальная проверка каждый раз не обязательна. Но привычка сверять сумму занимает меньше минуты и снимает целый класс проблем «установщик не ставится, почему непонятно».

Практический итог

Главный принцип прост: целостность подтверждается не «файл открылся», а совпадением контрольных сумм источника и копии. Используйте SHA-256 как основной алгоритм, стандартные средства вашей системы (Get-FileHash, certutil, shasum, sha256sum) и сравнивайте строки посимвольно. Если суммы расходятся — не пытайтесь установить файл, а перекопируйте его и проверьте ещё раз; повторный сбой указывает на неисправный носитель или канал передачи. А если файл скачан из сети, дополнительно сверьтесь с суммой, опубликованной разработчиком, — это защитит и от повреждения при загрузке, и от подмены файла.

PEFile.ru