Большие файлы с повреждением файлов (32 ГБ) в 18.04 LTS [РАЗРЕШЕНО]

У меня проблемы с файлами большого размера. У меня 64 ГБ оперативной памяти, и все мои накопители - Samsung 860 EVO. Я запускаю mdcrypt поверх моих необработанных дисков, luks RAID поверх этого и ext4 в качестве файловых систем. У меня много свободного места на диске, и я не использую подкачку.

Мой дистрибутив - Ubuntu 18.04 LTS (4.18.0-25-generic # 26 ~ 18.04.1-Ubuntu SMP Thu Jun 27 07:28:31 UTC 2019 x86_64 x86_64 x86_64 GNU / Linux).

Это нарушение было впервые обнаружено при клонировании больших USB-накопителей. Затем я заметил, что большие файловые системы, монтируемые зацикливанием, также могут быть повреждены.

Далее следуют отрывки:

Я начинаю свой тест с создания файла размером 32 ГБ с нулями :

$ dd if=/dev/zero of=zero-file_32GB bs=1024k count=32768
32768+0 records in
32768+0 records out
34359738368 bytes (34 GB, 32 GiB) copied, 55.3081 s, 621 MB/s

Затем я суммирую этот файл с помощью SHA256, чтобы получить хэш-код. Обратите внимание на то, как хеш изменяется при нескольких итерациях:

$ sha256sum zero-file_32GB 
5f7f8ea75d87ac7d64c07ecc2c5fdbe407540913ac0feb050ede768990140b38  zero-file_32GB

$ sha256sum zero-file_32GB 
64bcf7372df895319ce9e54758aec2814600fa3335fb82c5996a7636e7d637be  zero-file_32GB

$ sha256sum zero-file_32GB 
3475353b2a00e5abebb1878a9ddb5956eb829c94af26d9cd079f991fbd84435c  zero-file_32GB

$ sha256sum zero-file_32GB 
cf65fa70ba04d7bb4055b72fdf2ac90bf65ac8457cc80b8e673af5acb57d22d1  zero-file_32GB

Те же несоответствия случаются с суммой MD5:

$ md5sum zero-file_32GB 
8633b9ba83a8ac04c9b56fad0a065ec2  zero-file_32GB

$ md5sum zero-file_32GB 
cc289d380b25235b7610a7b86bc4fd47  zero-file_32GB

$ md5sum zero-file_32GB 
249f66bd3843b6fcad8316fd0a3e660c  zero-file_32GB

$ md5sum zero-file_32GB 
888ac00592204be7a026c27e98159ff2  zero-file_32GB

К настоящему времени я вполне уверен, что мой файл поврежден, а не алгоритмы суммирования хешей. Чтобы проверить эту гипотезу, я разделил свой нулевой файл размером 32 ГБ на тридцать два блока по 1 ГБ:

$ split --verbose -b 1G zero-file_32GB split-1G_
creating file 'split-1G_aa'
creating file 'split-1G_ab'
creating file 'split-1G_ac'
creating file 'split-1G_ad'
creating file 'split-1G_ae'
creating file 'split-1G_af'
creating file 'split-1G_ag'
creating file 'split-1G_ah'
creating file 'split-1G_ai'
creating file 'split-1G_aj'
creating file 'split-1G_ak'
creating file 'split-1G_al'
creating file 'split-1G_am'
creating file 'split-1G_an'
creating file 'split-1G_ao'
creating file 'split-1G_ap'
creating file 'split-1G_aq'
creating file 'split-1G_ar'
creating file 'split-1G_as'
creating file 'split-1G_at'
creating file 'split-1G_au'
creating file 'split-1G_av'
creating file 'split-1G_aw'
creating file 'split-1G_ax'
creating file 'split-1G_ay'
creating file 'split-1G_az'
creating file 'split-1G_ba'
creating file 'split-1G_bb'
creating file 'split-1G_bc'
creating file 'split-1G_bd'
creating file 'split-1G_be'
creating file 'split-1G_bf'

Затем я суммировал SHA256 новые разбиения файла. Все они должны быть идентичны, потому что каждый должен состоять только из нулей . Но обратите внимание на несоответствие в разделах az и ba :

$ sha256sum split-1G_??                                                                                                                                                  
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_aa                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ab                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ac                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ad                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ae                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_af                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ag                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ah                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ai                                                                                                                        
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_aj
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ak
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_al
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_am
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_an
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ao
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ap
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_aq
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ar
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_as
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_at
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_au
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_av
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_aw
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ax
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_ay
702301f26e8df8cf784ca6b45954f1ca3524d1e22c322ee271ab1ac20b4face2  split-1G_az
bd9442046cecfcdec29169f5e8485ee0e226f56fab24cfded23b4ad15275b5d9  split-1G_ba
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_bb
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_bc
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_bd
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_be
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  split-1G_bf

Подобные несоответствия с суммой MD5:

$ md5sum split-1G_??   
cd573cfaace07e7949bc0c46028904ff  split-1G_aa
cd573cfaace07e7949bc0c46028904ff  split-1G_ab
cd573cfaace07e7949bc0c46028904ff  split-1G_ac
cd573cfaace07e7949bc0c46028904ff  split-1G_ad
cd573cfaace07e7949bc0c46028904ff  split-1G_ae
cd573cfaace07e7949bc0c46028904ff  split-1G_af
cd573cfaace07e7949bc0c46028904ff  split-1G_ag
cd573cfaace07e7949bc0c46028904ff  split-1G_ah
cd573cfaace07e7949bc0c46028904ff  split-1G_ai
cd573cfaace07e7949bc0c46028904ff  split-1G_aj
cd573cfaace07e7949bc0c46028904ff  split-1G_ak
cd573cfaace07e7949bc0c46028904ff  split-1G_al
cd573cfaace07e7949bc0c46028904ff  split-1G_am
cd573cfaace07e7949bc0c46028904ff  split-1G_an
cd573cfaace07e7949bc0c46028904ff  split-1G_ao
cd573cfaace07e7949bc0c46028904ff  split-1G_ap
cd573cfaace07e7949bc0c46028904ff  split-1G_aq
cd573cfaace07e7949bc0c46028904ff  split-1G_ar
cd573cfaace07e7949bc0c46028904ff  split-1G_as
cd573cfaace07e7949bc0c46028904ff  split-1G_at
cd573cfaace07e7949bc0c46028904ff  split-1G_au
cd573cfaace07e7949bc0c46028904ff  split-1G_av
cd573cfaace07e7949bc0c46028904ff  split-1G_aw
cd573cfaace07e7949bc0c46028904ff  split-1G_ax
cd573cfaace07e7949bc0c46028904ff  split-1G_ay
7036950003e53e471654b020330b386e  split-1G_az
0a82f6068a91bef3b46294e1e30687be  split-1G_ba
cd573cfaace07e7949bc0c46028904ff  split-1G_bb
cd573cfaace07e7949bc0c46028904ff  split-1G_bc
cd573cfaace07e7949bc0c46028904ff  split-1G_bd
cd573cfaace07e7949bc0c46028904ff  split-1G_be
cd573cfaace07e7949bc0c46028904ff  split-1G_bf

Я думал постоянно разбивать на более мелкие куски, чтобы определить размер фактического несоответствие, а затем проанализировать его с помощью шестнадцатеричного редактора, но я сомневаюсь, что это дало бы какое-либо представление о том, что вызывает эту деградацию данных. Мои образы ISO, видеофайлы и зацикленные файловые системы EXT4 повреждаются. Есть идеи, в чем виноват?

Поскольку это начинает происходить только при 32 ГБ (что бывает вдвое меньше моих 64 ГБ ОЗУ. Я не использую свопинг.), Я так понимаю. склонен полагать, что это проблема памяти. Что вы скажете?

Обновление №1:

К сожалению, проверка памяти заняла не так много времени, как ожидалось.: - (enter image description here

Обновление №2 (Решение!)

  • Я удалил из компьютера все 4 флешки по 16 ГБ.
  • Затем я вставил флешку с наименьшим серийным номером в первый слот DIMM, слот №1 (мои слоты пронумерованы от 1 до 4). Я запускал MemTest86 в течение 3:44 (три часа сорок четыре минуты), и он завершился без ошибок.
  • Я заменил эту флешку следующей флешкой с последовательным порядковым номером. (после очевидного отключения питания и мер защиты от статического электричества). Я снова использовал слот №1 (потому что я хотел сначала протестировать всю память, прежде чем начинать проверять свои слоты). Я снова запустил MemTest86. На этот раз тест прервался почти мгновенно, из-за слишком большого количества ошибок.
  • Соответственно, я вставил третий модуль DIMM в слот № 1. MemTest86 работал 3:43, без ошибок.
  • Тест четвертого модуля DIMM в слоте № 1 также прошел 3:43 и без ошибок .
  • Затем я вставил три заведомо исправных модуля DIMM в первые три слота. MemTest86 проработал 8:54 без каких-либо ошибок.

Мне показалось интересным, что тестирование t Для трех модулей DIMM (8:54) потребовалось значительно меньше времени, чем для трех одномодульных тестов вместе взятых (3:44 + 3:43 + 3:43 = 11:10). Я предполагаю, что некоторые тесты проводились в тандеме.

Я sha256sum создал новый файл с нулями размером 32 ГБ. Сумма не изменилась даже после нескольких итераций. Моя сумма была 97af759fc4597bc41706df77cbab318a57d935bacb262bd409e3ab767e07066f , такое же число представил @ bernard.wei.

Я хотел бы поблагодарить @heynnema за совет по MemTest86. Это способствовало устранению этой проблемы.

Я считаю этот вопрос решенным.Спасибо всем!

4
задан 28 July 2019 в 23:47

1 ответ

  • проверьте на микропрограммные обновления для своей Samsung 860 EVO. Samsung Magician Приложение Windows, используемое для проверки встроенного микропрограммного обеспечения.

  • проверьте свою версию BIOS с sudo dmidecode -s bios-version и затем перейдите к веб-сайту производителя для проверки на более новый BIOS.

  • выполненный memtest проверять Ваш 64G RAM. Перейдите к https://www.memtest86.com/и загрузите/выполните свободное memtest протестировать Вашу память. Заставьте по крайней мере одну полную передачу всех тестов подтверждать хорошую память. Это займет много часов для завершения.

Обновление № 1:

memtest отказавший в тесте 2/4, [Тест адреса, владеют адресом]

memtest может перестать работать по нескольким причинам...

  • неправильная RAM спецификации установлена

  • BIOS установлен разогнать память или выполнить их в максимальной скорости

  • DIMM неправильно усажен в его слоте

  • DIMM является дефектным

DIMM's обычно устанавливается в парах равных размеров, чтобы воспользоваться преимуществом скорости чередования памяти с помощью двух каналов, A & B (или больше в некоторых случаях). Первая пара DIMMs входит в слоты A1/B1 и вторую пару в A2/B2. (Предполагающий, что это - настольный компьютер с четырьмя или больше слотами DIMM).

Шаг № 1:

  • проверьте свои спецификации RAM, чтобы гарантировать, что они совместимы с Вашей материнской платой

Шаг № 2:

  • проверьте свои настройки BIOS

Шаг № 3:

  • сенсорная корпусная земля, отключите компьютер, держите кнопку питания в течение 10 секунд

  • переустановите весь DIMMs

  • перетест с memtest

  • если memtest выполнения успешно, Вы, вероятно, решили проблему

Шаг № 4:

  • сенсорная корпусная земля, отключите компьютер, держите кнопку питания в течение 10 секунд

  • определите A2/B2 DIMMs и тщательно удалите их

  • перетест с memtest

  • если memtest выполнения успешно, A1/B1 DIMMs хорош

  • если memtest сбои, затем или A1 или B1 DIMM плохи

    • удалите или A1 или B1 DIMM
    • замените его или A2 или B2 DIMM
    • перетест с memtest
    • если memtest выполнения успешно, A1/B1 DIMM, который Вы вытащили, являются дефектным
    • если memtest сбои, другой A1/B1 DIMM является дефектным

Предположение, что Вы имеете четыре 16G DIMMs, продолжает циклически повторять остающиеся палки DIMM через слот A1/B1, пока только один дефектный DIMM не остается удаленным. Следует иметь в виду, что у Вас может на самом деле быть больше чем один дефектный DIMM.

Обновление № 2:

Используя memtest, один плохой DIMM был определен. Контрольная сумма прекрасна теперь, и последовательная.

3
ответ дан 1 December 2019 в 09:59

Другие вопросы по тегам:

Похожие вопросы: