November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Monday, June 2nd, 2014 11:10 am

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

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

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

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

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

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

Monday, June 2nd, 2014 11:14 am (UTC)
Как давно был предыдущий ребут?
Monday, June 2nd, 2014 11:44 am (UTC)
Месяц, конечно, не вызывает подозрений. Может какая местная аномалия вроде повышенного радиационного фона.
Monday, June 2nd, 2014 12:09 pm (UTC)
Насколько я понимаю процесс, памяти нужно время для накопления ошибок. После перезагрузки она чистая.
Может не радиация (хотя это и основная причина ошибок памяти), а дефекты изготовления, например.
Monday, June 2nd, 2014 07:10 pm (UTC)
Это мог быть случайно не сработавший sector reallocation у целевого диска. Глюк прошивки. Я на каком-то старом самсунге так наткнулся. Починилось не ресетом, а сбросом питания диска.
Tuesday, June 3rd, 2014 02:03 pm (UTC)
В моём случае глюк выражался в том, что сектор записывался без ошибок, но читался всегда с установленными/сброшенными по странному алгоритму битами, хаотично распределёнными по сектору. Коррелировало с содержимым.
Tuesday, June 3rd, 2014 08:14 pm (UTC)
Запустил ещё раз синхронизацию и увидел, что rsync (он с --checksum вызывался) начал считать файлы разными и перезаписывать заново. Потом уж я руками (dd) читал-писал-сравнивал-удивлялся.
Edited 2014-06-03 08:14 pm (UTC)
Tuesday, June 3rd, 2014 08:21 pm (UTC)
А! Ты про стадию где портилось? Логично думать, что при записи - попытка писать в сбойный сектор (видимо с поверхностью чего-нибудь было) - таки частичная запись на остатки слоя - чтение - черезчур умная прошивка вспоминает про рида-соломона или подобное - чудеса в ответе.
Про "писался без ошибок" - это я про ответ контроллера, он про ошибку записи молчал.