То, что я вижу, это:
- Windows жалуется при чтении файла, потому что CRC для него не соответствует его вычисленному CRC.
- Это означает, что NTFS имеет CRC для файла.
- Я ожидаю, что нарушающий блок / сектор может быть известен или, по крайней мере, угадан.
- Я также ожидаю, что "неправильные данные" могут быть прочитаны с диска.
- Если биты "неправильных данных" были инвертированы один за другим, грубой силой мы могли бы найти правильные данные.
- Таким образом, файл может быть восстановлен с использованием статистических данных и битов подбора для соответствия CRC.
У меня вопрос, какое программное обеспечение делает такие вещи? В любом случае, я мог бы сделать это (я был бы достаточно счастлив получить CRC, "неправильные" данные накопителя, узнать, какой блок / сектор нарушен там, и написать сценарий для его обработки, если даны соответствующие указания),
Кстати, это механический жесткий диск.
Изменить: После просмотра с шестнадцатеричными редакторами и так далее, я заметил, что плохой блок выглядит как мусор, такой как заполненный нулями или копия последнего блока (это, кажется, зависит от программы), поэтому для того, чтобы получить "реальные данные", которые повреждены, мы должны были бы отключить некоторые аппаратные исправления, которые отказываются читать блок, который плохо. Я считаю, что это называется ECC. Кроме того, я ожидаю, что если всего несколько бит пометят блок как "плохой", то для проверки совпадения можно использовать некоторую 32-битную контрольную сумму из Windows.
Так что на этот вопрос можно ответить просто с указанием сделать это самостоятельно.