Я получил несколько ошибок 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 на флешке (~ 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/
# lsmod
Выход Fedora 27
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 была заполнена нулями, как я уже испытывал сейчас. Я запустил memtester всего за несколько проходов, переключился на ext4 и возложил вину на двоичный драйвер nvidia.
Команды и их параметры, которые я использую:
# stressapptest -M 10000 -s 1800
10000 - это доступная память, которую я могу проверить. Я получаю это через free -m
-s` секунды.
# memtester 4096
Процессор ноутбука имеет 2 ядра, поэтому я обычно запускаю два экземпляра. 4096 это половина текущей доступной памяти черезfree -m
источник
memtest86+
с любой установки Ubuntu LiveCD.Ответы:
Удаленный ответ был близок
Ответ на этот вопрос и ответы был удален:
Мой ответ аналогичен, поскольку включает управление памятью очень низкого уровня; KASLR на уровне ядра.
Что делает KASLR
KASLR означает K ernel ddress S Темп L ayout R andomization. Я никогда не слышал это вслух, но, по-моему, я произнес это «Casler». Подумайте, дружелюбный призрак в машине. KASLR - это мера безопасности для рандомизации того, какие области памяти находятся в модулях ядра. Теория состоит в том, что ядро сложнее взломать, когда нельзя полагаться на один и тот же фрагмент кода, всегда находящийся в одной и той же области памяти.
Операция KASLR может рассматриваться как противоположность тестерам памяти, которые периодически читают и записывают в те же области памяти, не ожидая ИЗМЕНЕНИЙ. Эти противоположности привлекли меня (идиома заметила), чтобы выполнить поиск в Google по KASLR и ошибкам памяти. В частности, один, казалось бы, не связанный, может заслуживать сообщения на github со ссылкой на эти вопросы и ответы. Причина в том, что они думают, что они единственные, на кого влияет смещение адресов памяти (если я правильно читаю их поток). Первые три попадания принадлежат RedHat, на который я не хочу ссылаться, потому что их веб-сайты являются частичными публикациями для поисковых роботов Google, а затем они заставляют вас платить за чтение.
Существуют известные проблемы, когда KASLR загружает «ядро» ядра в середину карты памяти, чего не должно быть. К сожалению, я не могу вспомнить ссылку, которую я нашел на прошлой неделе, чтобы включить в ответ сегодня вечером. Ссылка содержала патч / обходной путь для указания KASLR не использовать определенные области памяти.
После подтверждения известных проблем с KASLR и областями памяти я прокомментировал вопрос об отключении KASLR и повторном запуске тестов памяти. В ответе указано, что он, похоже, успешен, поэтому я публикую этот ответ.
Как отключить KASLR
Хотя я использую параметр командной строки ядра grub "kaslr" уже пару лет, он стал ядром по умолчанию, начиная с версии 4.12 . Чтобы исключить загрузку KASLR, используйте edit
/etc/default/grub
и измените эту строку:У вас могут быть другие варианты, кроме «тихий» и «всплеск». Важным шагом является добавление «nokaslr» и оставление других параметров на месте.
Затем сохраните файл и запустите:
Конечно, другой способ отключить KASLR - просто использовать старое ядро, например 4.4.0, в Ubuntu 16.04.1, когда KASLR не был автоматически включен.
источник
Проблема очень похожа на случайное повреждение бит ОЗУ. По моему опыту, MemTest86 - «слишком простой» тест для аппаратного обеспечения. Он найдет действительно плохую память, но небольшие проблемы часто останутся незамеченными.
Если вы хотите узнать, хорошая ли у вас память, попробуйте запустить Prime95 в режиме самопроверки / пыток, настроенном на использование как можно большего объема оперативной памяти.
Еще одним хорошим тестом является проведение двухстороннего теста на гребном молотке в течение нескольких часов.
Я верю, что если Prime95 и двухсторонний гребной молот не могут найти проблем с вашей памятью, это, вероятно, работает правильно. Тем не менее, простой запуск MemTest86, компиляция программ, установка ОС, игра в игры могут показаться работающими, даже если у вас немного плохая память (там было, сделали это - и получили поврежденные данные в долгосрочной перспективе).
источник