Циклический избыточный код (CRC): обнаружение (и даже исправление) ошибок в цифровых данных

Что такое CRC

Прежде чем начать описывать, что делать в ситуации, когда появляется ошибка в данных CRC, следует пояснить, что такое «CRC».

Как известно, CRC (Cycle Redundancy Check – в переводе «циклическая избыточная проверка») являет собой алгоритм создания и проверки «контрольной суммы файла». Последняя используется в слежении за целостностью передаваемых данных с целью профилактики их повреждения или потери.

Данный алгоритм на основе циклического кода вычисляет контрольную сумму файла и добавляет её к телу самого файла. При загрузке (копировании) данного файла система, обладая алгоритмом вычисления контрольной суммы, проверяет правильность полученных данных, и при возникновении нестыковок выдаёт сообщение об ошибке CRC (data error — cycle redundancy check ).

Алгоритм CRC был изобретён в далёком 1961 году, пережил несколько качественных улучшений, и ныне является универсальным средством для проверки целостности получаемых данных.

Технология CRC

Способы исправления ошибки

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

Замена установочных файлов

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

Особенности возникновения ошибки CRC

Что же до причин возникновения данной дисфункции, то конкретные причины ошибки CRC могут быть следующими:

  • Потеря или повреждение какого-либо из пакетов сетевых данных при их передаче;
  • Потеря или повреждение данных на жёстком диске (к примеру, из-за плохих секторов);
  • Физическое повреждение оптического диска с информацией (CD, DVD и др.);
  • Нарушение целостности системного реестра;
  • Случайный сбой при инсталляции программы;
  • Неверная конфигурация файлов и так далее.

Для отображения кода CRC существует такая программа как HashTab, которая, после своей установки, в свойствах самого файла (кликаем правой клавишей мыши на файле, затем выбираем «Свойства) отображает значения контрольных сумм данного файла.

Программа HashTab

Ошибка №1. Носитель защищен от записи

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

При наличии переключите перемычку в режим записи

Решение №1

  1. Запустите командную строку от имени администратора, введите там:
  2. DiskPart — и нажмите на ввод.
  3. Затем наберите: list disk вновь нажмите на ввод.
  4. Высветится список имеющихся на ПК дисков, отметьте какую букву имеет проблемный диск (флешка).
  5. Наберите: select disk X — (вместо X поставьте букву проблемного диска) и нажмите на ввод.
  6. Наберите: attribute disk и нажмите ввод.
  7. Вам высветится информация, имеет ли проблемный диск статус «read only» (только чтение).

Здесь флеш-накопитель имеет статус «Read only» (только чтение)
Если да, то наберите: attribute disk clear readonly и нажмите ввод. Данный статус будет изменён на «No» (нет). Попробуйте вновь отформатировать нужный диск с помощью DiskPart.

Интересно: Что делать, если компьютер не видит флешку?

Решение №2

Нажмите на кнопку «Пуск», в строке поиска введите regedit и нажмите на ввод. Перейдите по пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies — и поставьте там значение параметра «WriteProtect» на 0 (ноль).

Если вы не обнаружите конечный пункт ветки «StorageDevicePolicies», тогда вам необходимо его создать. Правый клик мыши на предыдущей ступени ветки (Control) – «Создать» — «Раздел». Имя разделу дайте «StorageDevicePolicies» (без кавычек).

Создайте требуемый элемент реестра

Правый клик мыши на созданном разделе слева – «Создать» — «Параметр Dword (32 бита)». Переименуйте параметр на «WriteProtect» (без кавычек). Установите его значение на «0», нажмите на «Ок», и закройте системный реестр. Перегрузите ПК и попробуйте вновь выполнить DiskPart.

Важно знать: Инструкция по восстановлению флешек

Ошибка в данных CRC — проблемы с жёстким диском

Итак, как исправить ошибку CRC? Поскольку она регулярно случается из-за проблем к доступу жёсткого диска, то рекомендую выполнить следующее:

Действие 1. Восстановите потерянные данные на жёстком диске. Если данная проблема возникла при попытке получения доступа к какому-либо файлу на жёстком диске, тогда стоит использовать различные программы для восстановления потерянных данных. В частности, можно попробовать в деле такие программные продукты как Power Data Recovery или BadCopy Pro, предназначенные именно для рассматриваемых мной задач.

К примеру, чтобы воспользоваться Power Data Recovery, необходимо скачать и установить приложение, в меню выбрать «Damaged Partition Recovery», и осуществить полное сканирование (Full Scan). Если потерянные данные удастся восстановить, тогда, первым делом, нужно будет скопировать их на надёжный и безопасный носитель.

Интерфейс программы Power Data Recovery

Действие 2. Альтернативным вариантом восстановления доступа к данным на винчестере является использование системной утилиты проверки диска.

  1. Зайдите в Проводник, кликните правой клавишей мыши на проблемном диске (например, С:), в появившемся меню выберите «Свойства».
  2. Перейдите на вкладку «Сервис», кликните на «Выполнить проверку», поставьте галочки напротив двух опций проверки диска, нажмите на «Ок», а затем перезагрузите компьютер.
  3. После перезагрузки система автоматически задействует проверку целостности данных на жёстком диске, и попытается восстановить повреждённые сектора (может занять какое-то время).

Проверяем диск на наличие ошибок

Действие 3. Также можно запустить командную строку от имени администратора (нажать на кнопку «Пуск», в строке поиска написать cmd (не нажимая на ввод), кликнуть на появившийся вверху однотипный результат правой клавишей мыши, и выбрать «Запуск от имени администратора). В командной строке необходимо написать:

chkdsk c: /r /f — (вместо «с:» впишите имя другого проблемного диска при необходимости) затем нажать на ввод, и дождаться окончания проверки.

Как устранить?

Чтобы знать наверняка, что проблема кроется не в жестком диске, необходимо проверить его на ошибки. Для этого в операционной системе

Windows существует специальная утилита «chkdsk». Чтобы ею воспользоваться:

  • нажмите кнопку меню «Пуск»;
  • выберите пункт «Компьютер»;
  • выберите один из локальных дисков правой кнопкой мыши и нажмите «Свойства»;
  • в открывшемся окне свойств нужно сделать клик по вкладке «Сервис»;
  • в следующем окне нажмите «Проверить диск».

Желательно сделать эту процедуру для каждого тома (если их больше одного). Эту же проверку можно запустить с командной строки: «chkdsk C: /f». Параметр «f» указывает утилите на то, что ошибки в процессе сканирования должны быть исправлены автоматически.

На видео: Как проверить диск на ошибки

Далее нужно выполнить дефрагментацию всех локальных дисков. Это сократит вероятность появления ошибки CRC данных при скачивании файлов через торрент-клиент. Для этого можно использовать сторонние программы. Они имеют более расширенные функции и другие, более эффективные алгоритмы сжатия данных. Но можно воспользоваться и встроенной утилитой, которая также есть в каждой ОС Windows. Найти ее можно по уже знакомому пути.

  1. Нажмите «Пуск».
  2. Найдите и нажмите пункт «Компьютер».
  3. Выберите один из разделов жесткого диска, нажав ПКМ.
  4. Выберите «Свойства», «Сервис» и на открывшейся вкладке нажмите «Оптимизировать».
  5. Откроется окно, где необходимо выбрать диск и снова нажать на кнопку «Оптимизировать». На этой же странице ниже можно задать оптимизацию по расписанию.

Дефрагментация (или оптимизация) файлов на винчестере позволяет распределять данные для более удобной работы с ними. В результате компьютер станет работать значительно быстрее.

После всего проделанного скачанный фрагмент файла нужно с диска удалить. Удалить его нужно и из торрент-клиента. После чего найти другую раздачу и поставить файл на закачку. Чтобы не возникало проблем с торрентом в дальнейшем, найдите в настройках пункт «Выполнять программу от имени администратора» и активируйте его.

Как исправить ошибку CRC — альтернативные варианты

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

  • Скачайте торрент-файл из другого источника. Если вы скачали какой-либо файл с торрентов и получили ошибку CRC, тогда запустите торрент-клиент, удалите закачку с ошибкой, а потом и сами некорректно загруженные файлы на жёстком диске. Попробуйте поискать альтернативную закачку той же программы на торрент-трекере, возможно проблемная закачка была создана не совсем корректно, или файлы в ней были повреждены. В некоторых ситуациях не будет лишним и переустановить торрент-клиент, причина ошибки CRC может быть и в нём;
  • Если вы получили данную ошибку при попытке считывания данных с СД (ДВД) диска, тогда, для начала, необходимо аккуратно протереть поверхность диска мягкой тканью с целью удаления пыли или грязи на его поверхности, а затем попробовать считать его содержимое с помощью уже упомянутой программы BadCopyPro;

    Используем программу BadCopyPro

  • Если данная ошибка возникла при установке какой-либо игры, будет проще загрузить её образ ещё раз (или сами файлы программы) из другого источника с помощью проверенных программ уровня Download Master, возможно, это поможет избавиться от ошибки CRC.

Ошибка №5. Запрос не был выполнен

Обычно означает аппаратные проблемы с самим накопителем.

Решение

  1. Если у вас возникли такие проблемы с флеш-накопителем, тогда перейдите в Диспетчер устройств (нажмите на кнопку «Пуск», в строке поиска введите devmgmt.msc и нажмите ввод).
  2. Найдите там «Контроллеры USB», откройте подраздел кликнув на него, и деинсталлируйте всё его содержимое (кликайте на первое в очереди субустройство, жмёте правую клавишу мыши – Удалить, и так пока не удалите всё содержимое «Контроллеры USB»).
  3. Затем перегрузите компьютер, и вновь попытайтесь запустить «DiskPart» и выполнить намеченное.
  4. Если не помогло – то скорее всего ваш флеш-накопитель аппаратно неисправен.

Системная утилита для диагностики диска

Windows стандартно оснащен утилитой проверки диска, которая проще в использовании в сравнении с командой Chkdsk.

  1. Удерживая клавишу Win нажмите E.
  2. Отобразится список накопителей. Кликните правой кнопкой мыши тот, который хотите тестировать и перейдите в «Свойства».
  3. Откройте вкладку Сервис, затем кликните «Проверка диска на наличие ошибок».
  4. Если появится новое диалоговое окно, установите флажок «Автоматически исправлять системные ошибки» и нажмите Пуск.

Примечание: Если выбрали «C», компьютер попросит запланировать проверку. Это означает, что системный накопитель будет проверен при следующей загрузке системы. Нажмите «Запланировать проверку диска».

Дождитесь завершения сканирования. Как упоминалось, это может занять больше, чем пару часов.

Выбор метода обнаружения ошибок

Если вы знакомы с битом четности, который иногда используется в связи через UART, вы что-то знаете об обнаружении ошибок. Но бит четности является довольно жалким механизмом обнаружения ошибок; на самом деле, насколько я могу судить, большинство методов обнаружения ошибок более или менее жалки по сравнению с циклическим избыточным кодом (CRC, cyclic redundancy check), который явно стал доминирующим подходом – некоторые крупные имена в цифровой связи (включая CAN, USB и Ethernet) используют CRC как часть своего протокола передачи данных.

Структура пакета данных USB

Два CRC, не один

Создание CRC только для исходного сообщения вам не поможет. Ключом к реализации обнаружения ошибок CRC является обеспечение того, чтобы и передатчик, и приемник генерировали контрольную сумму одним и тем же способом.

Передатчик генерирует контрольную сумму для передаваемых данных и включает ее в исходное сообщение, а приемник генерирует собственную контрольную сумму с использованием полученных данных. Если сообщение приемника не совпадает с сообщением передатчика, весьма вероятно, что контрольные суммы будут отличаться; таким образом, приемник считает данные ошибочными, если контрольные суммы CRC не совпадают.

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]