пам'ятка
Існує цей підручник під назвою: Bad Memory HowTo, який обговорює відключення пам'яті через ядро, використовуючи memmap
аргумент для ядра. Відповідно до того, як у вас є два варіанти, коли мова йде про memmap
:
- Вимкніть все після поганої пам’яті -
(mem=###M option)
- Вимкніть лише пам'ять про погану пам'ять -
(memmap=#M$###M option)
З першим варіантом, якщо запит повідомляє, що в 600 М є погана пам'ять, ви можете відключити ОЗУ з цієї точки аж до кінця ОЗУ за допомогою цього:
mem=595M
Якщо в 802M і 807M є погана оперативна пам'ять, ви можете відключити 10-метровай розділ оперативної пам’яті, починаючи з 800M так:
memmap=10M$800M
ПРИМІТКА. Це буде в чорному списку через 10М після базової адреси 800М. Після цього слід запустити, memtest86+
щоб підтвердити правильність цього аргументу.
BadRAM
Для Ubuntu доступний патч під назвою BadRam. Це дуже добре висвітлено у цій публікації під назвою: BadRAM на сайті спільноти Ubuntu.
Після застосування патча до ядра, використовуючи дані на цій сторінці, ви вносите зміни в налаштування Grub2:
уривок із цього сайту для Grub2
Конфігураційний файл GRUB2 в Natty має рядок для налаштування виключень поганих операційних ядер. Отже, я припускаю, що це кращий спосіб відображення розділу пам'яті, який відображає помилки. Лінія, яку я встановила, була
GRUB_BADRAM = "0x7DDF0000,0xffffc000"
Пропонований спосіб на кожному веб-сайті, який я міг знайти, - це встановити це запуск memtest86 і нехай він показує вам налаштування BadRAM. memtest86 дав мені сторінку речей, які я мав би ввести. Я міг бачити, що всі адреси були в одному 16-блоковому блоці, тому я просто хотів відобразити цей блок 16K поза дією. Ось як я створив правильний запис.
Перший параметр простий. Це основна адреса поганої пам'яті. У моєму випадку я міг бачити, що всі погані адреси були більшими за 0x7DDF0000 і менше 0x7DDF4000. Отже, я взяв початок блоку 16K як свою вихідну адресу.
Другий параметр - маска. Ви ставите 1, де діапазон адрес, який ви хочете, має однакові значення, і 0, де він буде змінюватися. Це означає, що вам потрібно вибрати діапазон адрес таким чином, щоб змінюватись лише біти низького порядку. Дивлячись на мою адресу, перша частина маски проста. Ви хочете почати з 0xffff. Для наступного клювання я поясню з бітовими картами. Я хочу в діапазоні від 0000 до 0011. Отже, маска для badram буде 1100 або шістнадцятковою c. На останніх 3 гризенах потрібно мати всі 0 у масці, оскільки ми хочемо, щоб весь діапазон був відображений. Отже, ми отримуємо загальний результат 0xffffc000.
Після встановлення цього рядка в / etc / default / grub, я запустив sudo update-grub і перезавантажився, і моя погана пам'ять більше не використовувалася. Немає потрібних патчів ядра для відображення поганої пам'яті за допомогою цього методу.
Слідування №1
Переглядаючи сторінку вікіпедії для memtest86 +, у ній зазначено:
уривок зі сторінки вікіпедії Memtest86
Починаючи з Memtest86 2.3 та Memtest86 + 1.60, програма може вивести список поганих RAM-областей у форматі, очікуваному патчем BadRAM для ядра Linux; використовуючи цю інформацію, система Linux може надійно використовувати модуль оперативної пам’яті, навіть якщо вона має кілька поганих бітів. Grub2 здатний подавати цю саму інформацію до незапарваного ядра, не заперечуючи потреби в патчі BadRAM.
Також я натрапив на цю сторінку Gentoo, яка вказала memmap=...
шестнадцяткову адресу, щоб ви могли вказати її так:
memmap=5M$0x2f796c48
5M - це лише здогадка, очевидно, що ви можете налаштувати її нижче або вище залежно від того, скільки оперативної пам’яті навколо цього регіону ви хочете / потрібно опустити.
Нарешті, ви можете також вказати розмір у шістнадцятковій формі:
memmap=0x10000$0x2f796c48
Ігнорував би вихід 64 КБ за адресою 0x2f796c48.
Список літератури