Windows рассчитывает CRC для проверки каждой файловой операции?


8

Когда Windows обнаруживает повреждение файла в файловой системе, она может вернуть следующее сообщение об ошибке:

Ошибка данных (проверка циклическим избыточным кодом).

Это предполагает, что Windows проверяет каждую файловую операцию (копирование, перемещение и т. Д.) Путем вычисления CRC . Действительно ли Windows делает это, во время или после операции?

Ответы:


6

На самом деле Windows не создает никакой избыточности при передаче файлов, это неправильное выражение для драйвера устройства, обращающегося к блоку плохих секторов (см. Вопрос SO. На что и на что жалуется Windows NTC CRC? И эта статья Microsoft KB ; NTFS не хранит какие-либо контрольные суммы файлов). Если вы получили эту ошибку на вашем компьютере, вы должны обеспечить целостность вашего жесткого диска (и, возможно, вызвать chkdskс /rфлагом).

Короче говоря, Windows не проверяет файлы после их передачи. Вы можете использовать другой программный инструмент, например TeraCopy, для проверки данных после перемещения / копирования файлов.


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

@DragonLord Я не верю, что это так, иначе эти ошибки возникли бы во время обычных ошибок чтения / записи, когда сообщалось о не плохих секторах. Вы можете использовать стороннюю утилиту для фактической проверки содержимого файлов после их передачи.
Прорыв

Отредактировал вопрос для уточнения. Выполняет ли Windows какую-либо проверку ошибок во время выполнения файловой операции ?
bwDraco

@DragonLord по моему опыту, нет. Я использовал Windows для копирования файлов на плохие диски раньше, и иногда не получал сообщение об ошибке. Они были обнаружены только тогда, когда я вручную попытался проверить CRC (или хэш MD5 / SHA1) файлов, и они не совпадали. Я считаю, что сообщение об ошибке отображается только в том случае, если фактический драйвер дискового устройства выдает ошибку во время передачи или файловая система NTFS сама обнаруживает какое-либо повреждение.
Прорыв

1
На самом деле есть три различных условия, которые могут вызвать эту ошибку (в типичном интерфейсе IDE / SATA к обычному жесткому диску): 1) Повреждение данных в соединении между жестким диском и контроллером. 2) Повреждение данных в данных, считываемых контроллером диска с поверхности диска, несмотря на повторные попытки. 3) Доступ к дисковому сектору, который контролируется контроллером как недопустимый, который не может быть переназначен, пока не будет записан
Дэвид Шварц
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.