Начиная с самых первых поколений персональных компьютеров, проблема дефицита дискового пространства была одной из самых актуальных. Над её решением работали лучшие умы отрасли, и одним из эффективных способов решения, как вы уже догадались, оказалось использование архиваторов. Как оказалось, степень сжатия файла сильно зависит от его типа. Например, при упаковке текстов размер файла уменьшается в разы, а для большого текста – даже на порядок. Исполняемые файлы сжимаются хуже, а некоторые виды файлов, изначально созданных с использованием упаковщиков, практически не сжимаются.
Так или иначе, но архиваторы и поныне используются повсеместно – как правило, пакеты программ для установки поставляются именно в виде архивов, в том числе самораспаковывающихся. Но иногда при распаковке сжатых файлов пользователи сталкиваются с ошибкой несовпадения контрольной суммы, в результате чего очень нужный файл извлечь из архива не удаётся. Сегодня мы рассмотрим основные причины возникновения ошибки CRC и способы её устранения.
Причины появления ошибки
Для начала стоит вкратце ознакомиться с азами теории сжатия. Алгоритмы компрессии данных основываются на поиске одинаковых длинных фрагментов и их кодировании менее ёмким кодом. Даже в этом тексте таких фрагментов предостаточно. Например, двухбуквенных повторений. Но программы-архиваторы ищут более длинные повторяющиеся последовательности, так что коэффициент сжатия в итоге получается очень даже существенным.
При создании архива в него, кроме закодированной последовательности, включается таблица кодов и некоторые другие данные, в том числе контрольная сумма архива. Это число, хранимое в шестнадцатеричном виде, представляющее собой значение, рассчитанное на основании основной последовательности данных с применением специальных математических алгоритмов. Оно является уникальным именно для такой последовательности данных. Внесение любого изменения, даже однобитного, приведёт к кардинально другой контрольной сумме.
Особенность контрольной суммы (её принято называть хэш-суммой) заключается в том, что по ней невозможно восстановить исходную последовательность данных, но она является идеальным инструментом для определения подлинности полученного файла. Итак, в сам архив вносится контрольная сумма, она же вычисляется при разархивировании файла. Если хэш-суммы не совпадают, это говорит о том, что архив изменён уже после его создания.
В подобных случаях при распаковке файлов архиватор выдаёт соответствующее сообщение об ошибке несовпадения контрольной суммы, прекращая дальнейшую работу.
Итак, если при распаковке архива RAR вы получили сообщение об ошибке контрольной суммы, это может означать следующее:
- сам архив создан некорректно – например, если программа-архиватор, создавшая архив, заражена вирусом;
- используемый вами архиватор для распаковки архивов повреждён или работает со сбоями;
- иногда причиной становится несовпадение версий архиватора;
- ещё одной причиной появления ошибки может быть наличие кириллических символов при указании каталога распаковки;
- ошибка несовпадения CRC-кода может возникать и вследствие проблем с железом: при наличии сбойных секторов на накопителе или если модуль ОЗУ работает со сбоями.
Рассмотрим основные методы устранения данной ошибки.
Способы решения проблемы
В большинстве случаев виновником возникновения ошибки контрольной суммы в заархивированном файле является сам архив, про который в таких случаях говорят «битый».
Проверка источника данных
Если вы скачали файл с оптического диска – возможно, он получил повреждения из-за дефектов DVD-носителя. Проверьте, нет ли на нём царапин, сколов, потёртостей или трещин. При их наличии стоит поискать исходный файл в другом месте.
Если архив загружен из сети, есть вероятность, что файл получил повреждения в процессе скачивания – такое иногда случается, пакеты теряются. Можно попытаться скачать его повторно, но если ошибка не исчезнет, возможно, битый архив уже лежит на сервере. Тогда имеет смысл поискать этот же пакет в другом месте.
Словом, первое, что нужно сделать, получив данную ошибку при распаковке, – скачать файл с нескольких источников.
Исключение кириллицы из полного пути установки
Дистрибутивы программ далеко не всегда пишут программисты высокой квалификации. В силу этого нередки случаи, когда пакет содержит компоненты, которые не адаптированы под некоторые языки, в частности – кириллицу. И тогда такие дистрибутивы при распаковке могут генерировать ошибку контрольной суммы, касается ли это 7ZIP или WINRAR.
Если тот архиватор, которым вы пользуетесь, предлагает распаковать архив с документами в папку «Документы», или же вы сознательно разархивируете дистрибутивы программ в каталог «Софт», вам стоит попробовать использовать имена, не содержащие русских букв, – например, Docs или Soft.
То есть при распаковке внимательно следите за тем, в какую папку архиватор предлагает распаковать архив, причём кириллица может быть в любом участке пути.
Распаковщики, если речь идёт о старых версиях Windows, могут выдавать ошибку и из-за того, что кириллица присутствует в имени учётной записи. Изменить имя можно через «параметры», но если это для вас неприемлемо, можно создать нового пользователя с английским написанием его имени – это должно решить проблему.
Обновление версии архиватора
Операционная система Windows имеет собственные средства распаковки наиболее распространённых форматов архивов – zip, arj, rar, 7z, однако их функционал недостаточен по сравнению со специализированными пакетами.
Если во время распаковки архива произошла ошибка несовпадения контрольной суммы, стоит воспользоваться именно такими программами, например, WinRAR или упоминавшийся уже 7ZIP. Любая из них может справиться практически с любым типом архива. Скачивать нужно с официального сайта – это гарантирует отсутствие таких проблем, как заражение вирусом, чем грешат многие файлообменники. После установки архиватора нужно перегрузить компьютер и приступить к распаковке файла, вызвавшего ошибку.
Если и при использовании архиватора ошибка CRC не исчезла, вполне возможно, что это из-за того, что вы пользуетесь устаревшей программой. Не поленитесь посетить официальный сайт разработчика на предмет скачивания самой последней версии инсталляционного пакета – обычно это устраняет все возможные проблемы.
Отключение разгона
До сих пор мы рассматривали только программные способы устранения ошибки контрольной суммы, но она может возникнуть и по аппаратным причинам. В частности, такое нередко случается на компьютерах с разогнанным процессором или оперативкой. Оверклокинг хорош для выполнения ресурсоёмких задач, но в случае с работой архиватора он может вместо пользы принести вред, инициировав сбой при распаковке архива, что в итоге выльется в ошибку CRC.
Решение проблемы – отключение разгона. Проще всего это сделать, выполнив сброс BIOS до заводских настроек, после чего можно проверить работоспособность архиватора.
Устранение неполадок с диском компьютера
Более вероятным виновником появления ошибки несовпадения контрольной суммы при установке программ является наличие сбойных секторов на диске. Если ваш HDD возрастной, то стоит проверить его специализированной утилитой (можно и встроенными средствами Windows). С твердотельными накопителями такая неприятность случается чаще – в силу ограничений по циклам записи/чтения, свойственным для SSD.
Если ячейка памяти нечитабельна, очевидно, что при считывании файла его целостность будет нарушена, а значит, подсчёт контрольной суммы выдаст несовпадение со значением, записанным в самом архиве.
В обоих случаях нужно просканировать диск с опцией исправления ошибок, после чего снова скачать архив и распаковать его.
Как правило, в 95% случаев проблема кроется именно в битом архиве, поэтому с такой же вероятностью вам не понадобятся все изложенные способы решения проблемы несовпадения контрольной суммы, кроме первого.