Как я говорю человечности не использовать определенные адреса памяти?

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

0
задан 25 April 2017 в 14:56

2 ответа

Если вы посмотрите в /etc/default/grub, вы найдете параметр GRUB_BADRAM=, в котором вы можете определить, какие области памяти плохие.

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

Взято из https://help.ubuntu.com/community/BadRAM#BADRAM_setting_in_Grub2 ...

Настройка BADRAM в Grub2

В конфигурационном файле GRUB2 в Natty есть строка для настройки исключений ядра из-за проблем с памятью. Итак, я предполагаю, что это предпочтительный способ отображения раздела памяти, который показывает ошибки. Линия, которую я установил, была

GRUB_BADRAM="0x7DDF0000,0xffffc000" 

. На каждом веб-сайте, который я мог найти, был предложен способ установить memtest86 и показать настройки BadRAM. memtest86 дал мне страницу, в которую я должен был войти. Я мог видеть, что все адреса были в одном блоке 16K, поэтому я просто хотел отобразить этот блок 16K из строя. Вот как я сгенерировал правильную запись.

Первый параметр прост. Это базовый адрес плохой памяти. В моем случае я мог видеть, что все плохие адреса были больше, чем 0x7DDF0000 и меньше, чем 0x7DDF4000. Итак, в качестве начального адреса я взял начало блока 16K.

Вторым параметром является маска. Вы ставите 1, где требуемый диапазон адресов имеет те же значения, и 0, где он будет меняться Это означает, что вам нужно выбрать диапазон адресов так, чтобы менялись только младшие биты. Глядя на мой адрес, первая часть маски проста. Вы хотите начать с 0xffff. Для следующего куска я объясню с помощью битовых карт. Я хочу в диапазоне от 0000 до 0011. Таким образом, маска для бадрама будет 1100 или гекс с. Последние 3 полубайта должны быть все 0 в маске, так как мы хотим, чтобы весь диапазон отображался. Итак, мы получаем общий результат 0xffffc000.

После установки этой строки в / etc / default / grub я запустил sudo update-grub и перезагрузился, и моя плохая память больше не использовалась. Никаких патчей ядра не требуется для определения плохой памяти с помощью этого метода.


Конечно, лучшим планом действий будет замена неисправного ОЗУ.

2
ответ дан 3 November 2019 в 09:12

Я обнаружил, что самый простой и надежный способ для меня — это добавить параметр ядра memtest=4 в мою конфигурацию GRUB. Это добавляет пару секунд к загрузке, когда ядро ​​​​проверяет вашу оперативную память, а затем помечает их как плохие для вас.

  1. sudo nano /etc/default/grub

  2. обновите эту строку:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash memtest=4"
    
  3. sudo update-grub

  4. reboot

  5. При необходимости проверьте, работает ли он, запустив dmesg и просмотрев такие журналы:

    [5.043917] aaaaaaaaaaaaaaaaa неверный адрес памяти 0x0000000581a90000 - 0x0000000581a90010 зарезервировано
    

Источник.

4
ответ дан 16 April 2020 в 08:56

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

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