dil: (Default)
dil ([personal profile] dil) wrote2014-06-02 11:10 am

Грабли дисковые

Меняю в домашней машине диски. Как обычно, наступил на загадочные грабли..

Диски поставил, разметил, отформатировал, начал копировать файловые системы. Неколько штук скопировал и из чувства паранойи решил проверить, совпадают ли они с оригиналами.

Вот тут меня и ждала засада. Процентов десять файлов различаются. Причём всего лишь одним-двумя случайными байтами. И так на всех скопированных файловых системах. Файлы все сугубо статические, не менялись годами, некоторые исходные файловые системы вообще в read-only смонтированы. Попробовал скопировать заново rsync’ом вместо первоначального dump/restore — та же фигня, файлы различаются.

Ну первым делом подумал, что память сбоит. Перегрузил машину, прогнал полный цикл memtest86, никаких ошибок. Загрузил машину снова, скопировал одну систему — всё нормально.. С тех пор вот уже полсуток копирую остальные, никаких различий нет.

Что это было?!

Оригинал этой записи в личном блоге.

[identity profile] lazyboa.ya.ru 2014-06-02 11:14 am (UTC)(link)
Как давно был предыдущий ребут?

[identity profile] lazyboa.ya.ru 2014-06-02 11:44 am (UTC)(link)
Месяц, конечно, не вызывает подозрений. Может какая местная аномалия вроде повышенного радиационного фона.

[identity profile] lazyboa.ya.ru 2014-06-02 12:09 pm (UTC)(link)
Насколько я понимаю процесс, памяти нужно время для накопления ошибок. После перезагрузки она чистая.
Может не радиация (хотя это и основная причина ошибок памяти), а дефекты изготовления, например.
webushka: (Default)

[personal profile] webushka 2014-06-02 07:10 pm (UTC)(link)
Это мог быть случайно не сработавший sector reallocation у целевого диска. Глюк прошивки. Я на каком-то старом самсунге так наткнулся. Починилось не ресетом, а сбросом питания диска.
webushka: (Default)

[personal profile] webushka 2014-06-03 02:03 pm (UTC)(link)
В моём случае глюк выражался в том, что сектор записывался без ошибок, но читался всегда с установленными/сброшенными по странному алгоритму битами, хаотично распределёнными по сектору. Коррелировало с содержимым.
webushka: (Default)

[personal profile] webushka 2014-06-03 08:14 pm (UTC)(link)
Запустил ещё раз синхронизацию и увидел, что rsync (он с --checksum вызывался) начал считать файлы разными и перезаписывать заново. Потом уж я руками (dd) читал-писал-сравнивал-удивлялся.
Edited 2014-06-03 20:14 (UTC)
webushka: (Default)

[personal profile] webushka 2014-06-03 08:21 pm (UTC)(link)
А! Ты про стадию где портилось? Логично думать, что при записи - попытка писать в сбойный сектор (видимо с поверхностью чего-нибудь было) - таки частичная запись на остатки слоя - чтение - черезчур умная прошивка вспоминает про рида-соломона или подобное - чудеса в ответе.
Про "писался без ошибок" - это я про ответ контроллера, он про ошибку записи молчал.