Помилки пам'яті з Ubuntu, але не з MemTest86 +


8

У мене виникли деякі btrfs та ext4 помилки. Вирішивши перевірити свою ОЗУ, я отримав наступні повторювані помилки memtester. Я завжди отримую подібні помилки після трохи роботи memtester. Зазвичай за годину, але це займало 4-5 годин за один раз.

Оперативна пам’ять мого комп’ютера паяна. У мене з'явився додатковий порожній слот. В BIOS немає налаштувань для відключення оперативної пам'яті на борту.

Я бігав:

  • Memtest86 + за 8 проходів (~ 8 годин)
  • MemTest86 за 18 проходів (~ 9 годин)
  • memtesterта stressapptestза замовчуванням Fedora 27, встановленого на USB-накопичувачі (~ 10 годин)
  • memtesterта stressapptestна Ubuntu 17.10 Live за замовчуванням (~ 2 години)
  • memtesterі stressapptestна Ubuntu 17.10 на USB-накопичувачі (~ 8 годин)
  • # debsums --changed єдиним зміненим файлом було зображення теми.

Вони не надрукували жодних помилок.

Я використовую Ubuntu 17.10 (оновлений з 17.04) з ядром за замовчуванням. Ядро не заплямоване. Це ноутбук ASUS з Intel Haswell i3.

  • Також тестовано з Linux 4.14.13 та 4.15.0-rc3, rc4, mainline.
  • Тестували також із продувним пакетом Intel-microcode.

Помилка відтворюється: або Nouveau вимкнено, або ввімкнено, не завантажуються бінарні драйвери nvidia.

До чорного списку входять наступні модулі: mtd intel_spi_platform intel_spiоскільки вони не завантажуються за умовчанням, встановити Fedora 27, і вони, здається, цегляні деякі ноутбуки Lenova. Помилки не припинялися.

uname -aвихід

Linux hostname 4.13.0-19-generic #22-Ubuntu SMP Mon Dec 4 11:58:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

# lsmodвихід

https://paste.ubuntu.com/26222245/

Fedora 27 в # lsmod«S Вихід

https://paste.ubuntu.com/26226473/

Нинішня ситуація

Я поставив свій жорсткий диск у ноутбук (резервний ноутбук), який, як я знаю, хороший, і провів там тести. Я отримав помилки. Зараз я впевнений, що це проблема програмного забезпечення. Я ніколи не міг викликати помилки на своєму ноутбуці зі свіжим Ubuntu, а також із Fedora, що намагався багато-багато годин.

Що я повинен зробити?

Зразок помилок:

Loop 6:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : testing 262
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94000.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94008.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94010.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94018.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94020.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94028.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94030.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94038.
  Walking Ones        : ok         
  Walking Zeroes      : ok         
  8-bit Writes        : ok
  16-bit Writes       : ok

Подібна помилка з обома слотами оперативної пам’яті заповнена:

Loop 1:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : testing   4
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80000.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80008.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80010.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80018.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80020.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80028.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80030.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80038.
  Bit Flip            : setting 141

Помилка stressapptest:

Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e000(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e008(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e010(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e018(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e020(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e028(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e030(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e038(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a

Я підозрюю, що конфігурація Ubuntu у поєднанні з обладнанням мого ноутбука винна в цих помилках. Майже кожного разу в пачках по вісім.

Неважлива, нещільно пов’язана інформація нижче

Про помилки btrfs; Я використовував 17.04. Я запитав навколо в btrfs 'irc. Мені сказали, що це може бути апаратна помилка чи якось помилка управління пам'яттю. Частина сторінки метаданих btrfs заповнена нулями, як я відчував зараз. Я пробіг пам’ятку лише кілька проходів, перейшов на ext4 і поклав провину на бінарний драйвер nvidia.

Команди та їх параметри, які я використовую:

# stressapptest -M 10000 -s 1800

10000 - це наявна пам'ять, яку я можу протестувати. Я отримую це через free -m-s` це секунди.

# memtester 4096

Процесор ноутбука має 2 ядра, тому я зазвичай запускаю два екземпляри. 4096 - це половина наявної пам’яті черезfree -m


1
Я б замінив погану оперативну пам'ять, але не знаю, чи можливо це з паяними мікросхемами оперативної пам'яті. Чи достатньо новий комп'ютер для заміни в рамках гарантії?
sudodus

@sudodus Так, його гарантія ще не минула. Я поверну його, якщо не знайду рішення. Я виявив, що, хоча офіційного способу немає, люди знайшли способи відключити паяних баранів на деяких ноутбуках за допомогою стрибків деяких тестових балів.
Артем

Щоб бути впевненішим, спробуйте memtest86+будь-яку установку UCDU LiveCD.
N0rbert

@ N0rbert Я зробив кілька тестів на memtest86 - прихильний - з негативними результатами. Але вони були короткими-4 повторення- я сьогодні зробить тест на ніч.
Артем

2
@sudodus, я вважаю, що memtest86 + може перевірити власну пам'ять, однак це не повинно бути великою проблемою. Так, я кілька разів відремонтував свій розділ ext4, оскільки він, ймовірно, з-за помилок, пов’язаних із пам’яттю. На жаль, я не зміг відновити розділ btrfs, оскільки метадані якимось чином були пошкоджені до того, як вони були записані на диск, і мій розділ btrfs, ймовірно, поширив його за допомогою scrub btrfs та пошкодив частину цього.
Артем

Відповіді:


1

Видалена відповідь була близькою

Відповідь видалено на це запитання:

Ви вже намагалися перевстановити ubuntu, оскільки це звучить як збій управління пам'яттю на рівні ОС

Моя відповідь подібна, оскільки передбачає управління пам'яттю дуже низького рівня; KASLR на рівні ядра.

Що робить KASLR

KASLR розшифровується як K ernel A ddress S темп L ayout R andomization. Я ніколи не чув, щоб це говорилося вголос, але в голові я вимовляв це "Каслер". Подумайте доброзичливий привид у машині. KASLR - це міра безпеки для рандомізації того, які модулі ядра місць розташування знаходяться. Теорія полягає в тому, що ядро ​​важче зламати, коли ви не можете покластися на той самий біт коду, який завжди знаходиться в одному і тому ж місці пам'яті.

Операцію KASLR можна вважати протилежною тестерам пам’яті, які повторно читають і записують у ті самі місця пам’яті, очікуючи НЕ ЗМІНИ. Це протилежності, і мене це привернуло (ідіома помітив), щоб здійснити пошук в Google за KASLR та помилками пам'яті. Зокрема, одне, здавалося б, не пов’язане з цим, можливо, заслуговує на повідомлення про github, що посилається на це питання та відповіді. Причиною цього є те, що вони вважають, що вони є єдиними наслідками зміщення адрес пам'яті (якщо я правильно читаю їх нитку). Перші три звернення - від RedHat, до якого я люблю посилатися, оскільки їх веб-сайти є частковими повідомленнями, щоб потрапити на пошукові роботи Google, а потім вони змушують вас читати.

Відомі проблеми, коли KASLR завантажує ядро ​​"начиняти" в середину карти пам'яті, чого він не повинен робити. На жаль, я не можу згадати посилання, яке я знайшов минулого тижня, щоб включити його у відповідь сьогоднішнього дня. Посилання мала виправлення / вирішення для спрямування KASLR не використовувати конкретні місця пам'яті.

Після підтвердження відомих проблем з KASLR і місцями пам'яті я прокоментував питання, щоб вимкнути його KASLR і відновити тести пам'яті. У відповіді зазначено, що це здається успішним, тому я публікую цю відповідь.

Як відключити KASLR

Хоча я вже пару років використовую параметр командного рядка ядра grub "kaslr", він став ядром за замовчуванням, щонайменше, з версії 4.12 . Щоб усунути KASLR від завантаження, використовуйте редагування /etc/default/grubта змініть цей рядок:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nokaslr"

У вас можуть бути інші варіанти, крім "тихий" і "плескіт". Важливий крок - додати "nokaslr" і залишити інші варіанти на місці.

Потім збережіть файл і запустіть:

sudo update-grub

Звичайно, інший спосіб відключення KASLR - це просто використовувати старіший ядро ​​на зразок 4.4.0 під Ubuntu 16.04.1, коли KASLR не включався автоматично.


0

Проблема дуже сильно звучить як випадкова бітова пошкодження ОЗУ. На мій досвід, MemTest86 - це "занадто простий" тест на обладнання. Він знайде дійсно погану пам'ять, але незначні проблеми часто залишаться непоміченими.

Якщо ви хочете знати, чи хороша ваша пам'ять, спробуйте запустити Prime95 в режимі самовипробування / тортур, налаштованому на використання якомога більшої кількості оперативної пам’яті.

Ще одне хороше випробування - запустити двосторонній тест на веслування протягом декількох годин.

Я вірю, що якщо Prime95 та двосторонній гребінець не зможуть знайти жодних проблем із вашою пам’яттю, він, ймовірно, справно працює. Однак просто запуск MemTest86, компіляція програм, встановлення ОС, ігрові ігри можуть здатися справними, навіть якщо пам’ять трохи погана (там було, зробили це - і отримали пошкоджені дані з часом).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.