В последние недели у меня было несколько случаев повреждения данных при копировании файлов с одного диска на другой. Вопрос в том, что может быть причиной, и как я могу это точно определить?
Некоторые подсказки:
- проблемы (9 случаев) возникли на двух разных машинах (один AMD 5050e с ECC RAM, другой - нетбук), оба работают под управлением Win7x64 SP1 без сбоев или других явных проблем;
- возникли проблемы при копировании большого объема данных (всего около 3 ТБ) с одного диска на другой;
- копия была со стандартным графическим интерфейсом (Windows Explorer), который не сообщил об ошибке;
- исходный файл и копия имеют одинаковый размер и дату изменения;
- повреждение данных было обнаружено с использованием хеша MD5 (
md5sum
или / и Microsoft FCIV), который был ошибочным в копии (MD5 как оригинала, так и копии повторяется); fc /B
повторно сообщает о различиях, которые всегда были на смежных блоках с границей ровно 4 КБ (10 случаев: один файл был поражен дважды);- ошибочные блоки имеют разный размер, от 4 кБ до 52 кБ, в случайном, казалось бы, месте в больших файлах (обычно несколько ГБ);
- поврежденные блоки не имеют видимого отношения к оригиналу; примерно в половине случаев поврежденные данные были полностью нулевыми;
- все задействованные диски имеют файловую систему NTFS и получили чистую оценку здоровья по
chkdsk /f
(без проблемных блоков, без сообщений об ошибках); - два затронутых целевых диска - USB (HD бывает от одного производителя, но я не могу сказать, что это важно)
- один - 2,5 "2 ТБ, размещенный в автономном USB 3 (Super-Speed, используется в Hi-Speed) корпусе с маркой производителя HD;
- один - 3,5 "1,5 ТБ в мультимедийном корпусе на базе Linux (PCH A-200) с ведомым портом USB 2 (Hi-Speed);
- в более чем половине случаев повреждение было обнаружено примерно через час после копирования, без отключения или перезагрузки; в большинстве или во всех других целевые диски были правильно извлечены;
- У меня нет причин подозревать различные исходные диски (в основном SATA, некоторые SSD).
Дополнение: я действительно заинтересован в том, чтобы найти основную причину и определить виновника (-ов), а не обойти эту проблему.
Я полагаю, что все задействованные технологии должны иметь очень низкий уровень необнаруженных ошибок по сравнению с зарегистрированными (и у меня нет сообщений об ошибках). Следовательно
- если триггер ошибки был магнитным носителем (гипотеза, которая очень хорошо соответствует наблюдаемому выравниванию 4 кБ, которое, как я полагаю, соответствует внутреннему размеру физического сектора дисков), он удваивается с катастрофической ошибкой где-то, предотвращая сообщение об ошибке, так как будет (я знаю из опыта), по крайней мере, ошибка чтения на диске SATA моей (другой) любимой марки;
- если триггер ошибки был плохим электрическим контактом USB-кабеля и не был обнаружен CRC (как предполагает ответ); и учитывая, что максимальный размер пакета данных USB 2 в соответствии с этим источником составляет 1 кБ, а не 4 кБ как выравнивание всех моих ошибок; должна быть какая-то дополнительная ошибка в обработке ошибок (или зияющая дыра в спецификациях USB или как они обрабатывают жесткие диски).