На что и на что жалуется Windows NTC CRC? - PullRequest
5 голосов
/ 12 марта 2012

Я пытаюсь найти ответ на мой вопрос , касающийся восстановления файла, когда API-интерфейсы Windows жалуются на «ошибку CRC».Я знаю, что это из-за плохого блока.

Но моя теория такова:

  • Если я отключу SMART и, следовательно, ECC, я смогу прочитать «необработанные данные», без применения ECC, таким образом, имея блок с «неопределенными данными» в потоке файла (вместо пустого блока с примененным ECC).
  • Эти данные не должны соответствовать CRC его NTFS, тогда как данные другого файла должнысовпадают с их.
  • Я должен иметь возможность грубо форсировать "правильные данные" всего файла, перебрасывая биты один за другим в блоке с "неопределенными данными" (я подозреваю, что повреждение влияет на бит или два в плохом блоке, а не целый блок, следовательно, он находится в пределах порога восстановления 32-битной контрольной суммы и грубой силы).

Теперь проблема в том, что я понятия не имею, что это за CRC или гдеэто.Я много гуглил, но не могу найти об этом.Я полагаю, что это функция NTFS, и, насколько мне известно, NTFS не имеет полной официальной документации, и на самом деле мне не нравится идея искать это в исходном коде C ++ NTFS-3G.

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

Также: Я подозреваю, что CRC предназначен для единиц размещения, а не для целых файлов.Может быть, это в MFT?

1 Ответ

6 голосов
/ 13 марта 2012

Ошибки CRC, которые вы видите, исходят не от NTFS.Они приходят от драйвера устройства.

...