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

4181
bwDraco

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

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

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

8

1 ответ на вопрос

6
Breakthrough

Windows doesn't actually preform any redundancy on file transfers, this is a misnomer for the device driver accessing a bad sector block (see the SO question What, and where, is the NTFS CRC windows complains about? and this Microsoft KB article; NTFS does not store any kind of file checksums). If you receive this error on your computer, you should ensure your hard disk's integrity (and possibly invoke chkdsk with the /r flag).

Long story short, Windows does not verify any files after they are transferred. You can use another software tool like TeraCopy to verify data after moving/copying files.

Я на самом деле посмотрел на связанный вопрос. Я спрашиваю, вычисляет ли Windows CRC на лету во время файловых операций, а не обязательно, сохраняет ли она их. bwDraco 11 лет назад 0
@DragonLord Я не верю, что это так, иначе эти ошибки возникли бы во время обычных ошибок чтения / записи, когда сообщалось о не плохих секторах. Вы можете использовать стороннюю утилиту для фактической проверки содержимого файлов после их передачи. Breakthrough 11 лет назад 0
Отредактировал вопрос для уточнения. Выполняет ли Windows какую-либо проверку ошибок * во время выполнения файловой операции *? bwDraco 11 лет назад 0
@DragonLord по моему опыту, нет. Я использовал Windows для копирования файлов на плохие диски раньше, и иногда ** не ** получил сообщение об ошибке. Они были обнаружены только тогда, когда я вручную попытался проверить CRC (или хэш MD5 / SHA1) файлов, и они не совпадали. Я полагаю, что сообщение об ошибке отображается только в том случае, если фактический драйвер дискового устройства выдает ошибку во время передачи или файловая система NTFS сама обнаруживает какое-либо повреждение. Breakthrough 11 лет назад 0
На самом деле существует три различных условия, которые могут вызвать эту ошибку (в типичном интерфейсе IDE / SATA для обычного жесткого диска): 1) Повреждение данных в соединении между жестким диском и контроллером. 2) Повреждение данных в данных, считываемых контроллером диска с поверхности диска, несмотря на повторные попытки. 3) Доступ к сектору диска, который контролируется контроллером как недопустимый, который не может быть переназначен до тех пор, пока не будет записан David Schwartz 11 лет назад 1