Memtest86 как пользоваться linux

Обновлено: 07.07.2024


По роду деятельности приходится иметь дело с железом, с большим количеством компьютеров разной конфигурации, и, в частности, заниматься их тестированием. Естественно, хочется чтобы этот процесс был автоматизирован на сколько возможно. Для этих целей я использую бездисковую загрузку линукс через PXE, на котором подготовлены к автозапуску соответствующие скрипты с разными тестами, демоны следят за состоянием системы, а мониторинг на сервере показывает результаты и ругается, если что-то не так. В общем-то, всем можно быть довольным, но процесс проверки оперативной памяти никогда мне не нравился. Нативный для линукса memtester, субъктивно, работает слишком долго, прежде чем что-то найдет, да и находит далеко не всегда. Собрать ядро или поиграться с архивами — неплохой способ проверить систему на стабильность, но в глюках не всегда бывает виновата память. А самым действенным способом, в конечном счете, является старый добрый Memtest86. Но с ним необходимо следить за каждым компьютером по отдельности, теряется весь процесс автоматизации, а когда компьютеров слишком много, то начинает поджимать и время. К сожалению, обделен всякими хитрыми kvm'ами.

Размышляя над этим, я обратил свой взгляд на виртуализацию. Почему бы не попробовать? Хотя бы just for lulz. Память ведь используется таже самая.

Для этих целей в VirtualBox создаем виртуальную машину самой простой конфигурации: без сети, без жестких дисков, только CD-ROM куда подключается образ с MemTest. Создаем с помощью GUI или в консоли:


Подключаем к нашей машине загрузочный образ с Memtest. Я использовал бету пятой версии, скачать можно с официального форума.


Перед самым запуском вычищаем кеш линукса из памяти:


Решаем сколько свободной памяти отдадим под проверку, а сколько оставим под нужды операционной системы:

Если памяти оставить слишком мало, линукс начинает вести себя нестабильно, тем более бездисковая система, где нет свопа.

Пятая версия мемтеста поддерживает многоядерность, воспользуемся этим и отдадим под тест сколько не жалко:


Вносим соответствующие изменения в машину:


И запускаем в фоне в консольном режиме:


Выключить виртуальную машину можно командой:


За состоянием теста следим с помощью отладчика VirtualBox:


Пример вывода в терминал:

Теперь достаточно распарсить вывод в терминал любым удобным способом, чтобы узнать время, количество проходов, найденные ошибки, и другую интересную информацию. И соответственно написать под это дело управляющие скрипты, ради чего все и задумывалось.

Например, у меня при наличии ошибки в лог пишется «снимок» экрана, а на сервер отправляется соответствующее предупреждение:


Я запустил это дело тестироваться на нескольких компьютерах с не самой качественной памятью, и результат не заставил себя долго ждать:

Для подтверждения, перезапускаю Memtest в нормальном режиме:


Способ на удивление работает. Поэтому использую его для себя наравне с другими. Таким образом получилось выявить уже много планок памяти с ошибками.

  • Это старый добрый Memtest с радующим глаз интерфейсом.
  • Возможность полной автоматизации его работы.
  • Имеем соответсвующую эффективность.
  • Память не тестируется полностью, а только ее часть.
  • Этот способ сам по себе может привести к нестабильной работе системы. Редко, но бывает, к сожалению.

Надеюсь, кто-то найдет статью полезной. Ну, или по крайней мере улыбнется.


MemTest86+ – лучшая программа для проверки оперативной памяти. Memtest86+ запускается с помощью собственного загрузчика, поэтому наличие операционной системы для их работы не нужно. Memtest86+ имеет функцию формирования списка плохих блоков памяти в формате BadRAM. Используя эти данные, модифицированное ядро Linux может работать с дефектным модулем RAM, не используя повреждённые участки.

Программа написана на языке Си и x86-ассемблере, поддерживает современные многоядерные процессоры, а также большое количество чипсетов материнских плат.

Алгоритм проверки памяти у обеих программ сходный. Программа сначала записывает всю память повторениями подготовленного блока данных, затем считывает и сверяет записанное с прочитанным в два прохода: начиная с младших адресов к старшим и наоборот. Процедура повторяется для множества разных образцов данных, чтобы выявить все возможные ошибки.

В процессе тестирования утилита совершает один или много циклов в зависимости от заданной перед запуском тестирования настройки.

2. Установка программы.

Для установки программы выполним команду:


Создадим конфигурацию Memtest86+ под нашу систему:


Следующим шагом пропишем Memtest86+ в загрузочное меню компьютера:


Перезагрузим компьютер и получим результат:


Выбираем в меню Memtest86+ и запускаем её.

На физическом компьютере он запустится сразу через секунд 10-15, просканирует микросхемы компьютера и приступит к тесту сразу автоматически.

На виртуальном будет ругаться, что сервер виртуальный и нет температурных датчиков. Если нажать клавишу F1, будет выбран режим сканирования в «защищенном режиме» и тест благополучно начнётся, но только для выделенной виртуальной машине памяти. Объектом сканирования будет именно тот диапазон объема оперативной памяти, который вы выделите для виртуальной машины.


Готово! Теперь можно тестировать RAM и температуру работы физического CPU.

Я ищу опцию memtest на 64-битной версии Ubuntu 12.04 live CD, но у меня есть только варианты: "Попробуйте Ubuntu без установки", "Установить Ubuntu" и "Проверить диск на наличие дефектов". Что мне не хватает?

введите описание здесь

Редактировать: Этот вопрос относится к текущим версиям Ubuntu (64-битный псевдоним amd64, который работает в режиме UEFI). Пункт меню загрузки "Тест памяти" доступен только в режиме BIOS.

Memtest86+

Если вы загружаете компьютер в режиме BIOS (псевдоним CSM в устаревшем режиме), memtest86+ работает.

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

Memtest86

Оригинальная ветка memtest86 (без плюса) работает в режиме UEFI. Есть бесплатная версия (но я не думаю, что это открытый исходный код, и по этой причине недоступна для включения в дистрибутивы Linux).

Memtest через загрузочное меню Ubuntu

Например, Memtest86+ включен в большинство файлов Ubuntu iso.

При загрузке компьютера в режиме BIOS (псевдоним CSM псевдоним устаревшего режима) с DVD-диска или USB-накопителя имеется клонированная копия из iso-файла.

В системах Ubuntu 16.04.x ​​LTS, установленных в режиме BIOS, также есть опции "Проверить память" при загрузке компьютера (через меню grub).

Но когда вы загружаете компьютер в режиме UEFI, нет возможности использовать Memtest86+ (потому что он не будет работать).

Автономный Memtest86+ файл изображения

Вам может понадобиться небольшой автономный файл Memtest86+ iso или другой файл изображения для создания живого USB-накопителя.

Это очень простой ISO-файл. Я тестировал в VirtualBox, и он работает как CD.

Но есть "Автоинсталлятор для USB-ключа (Win 9x/2k/xp/7)" в

Я извлек его на USB-накопитель в Windows и клонировал эту систему в сжатый файл изображения и загрузил его в

который может быть извлечен непосредственно в Linux с помощью mkusb, dus и диски псевдоним gnome-disks (и в два этапа, извлечение и клонирование с помощью других инструментов клонирования, которые принимают извлеченный файл в качестве входного файла).

После установки mkusb и / или dus вы можете сделать это с помощью Dash или пункта меню или с помощью следующей командной строки

Так что с live cd он не будет работать в данный момент. В соответствии с этой темой вы можете добавить его позже: Как я могу добавить опции Memtest86+ обратно в меню Grub? но я сомневаюсь, что это будет работать: удаленные комментарии утверждают, что вы все еще получаете Error unknown command Linux16 ошибка.

Проблема не в 16- или 32-битном протоколе загрузки, основная проблема заключается в многочисленных вызовах BIOS, необходимых для инициализации памяти. EFI - хорошая идея, но впервые я услышал, что "EFI заменит BIOS в ближайшие месяцы. " был в 2002 году на форуме разработчиков Intel. Спустя 10 лет UEFI заменил EFI, но BIOS все еще присутствует на 99% материнских плат ПК. Трудно создать EFI-readyMemtest86+ с массовым переписыванием кода, и эта версия не будет совместима с устаревшей версией BIOS. Я не буду рассматривать поддержку двух вилок одновременно, поэтому, когда Memtest86+ переключится на EFI, версия BIOS будет прекращена. Когда BIOS не будет доступен в стандартных компонентах ПК, я начну работать над редакцией en EFI.

Доступна бета-версия проприетарного PassMark MemTest86 5.0 для EFI:

Его следует запускать из GRUB, rEFInd, gummiboot и т. Д., Хотя для этого может потребоваться явное добавление пункта меню. (Очевидно, это еще не было встроено в дистрибутивы доставки)

imgpath=memtest86-usb.img grubcfg=/tftpboot/grub/grub.cfg loop=$(losetup --show -Pf $) mkdir -p /mnt/memtest mount $p2 /mnt/memtest cp /mnt/memtest/EFI/BOOT/BOOTX64.efi /tftpboot/memtest.efi umount /mnt/memtest losetup -d $ cat << EOF >> $grubcfg menuentry 'MemTest86 (x64)' < chainloader /memtest.efi >EOF

По сути, это то, что я сделал, и все работает нормально. Единственная проблема, с которой я столкнулся, - это то, что некоторые машины имеют сверхвысокое разрешение и действительно маленькие.

Мне удалось запустить memtest86+ с USB-накопителем Ubuntu 16.04 Server с опцией Test Memory. На этой странице показаны параметры загрузки:

В настольной версии была показана только возможность попробовать Ubuntu или установить Ubuntu, как на этой странице:

Я хотел использовать Ubuntu Live-USB keydrive с MemTest86 для 64-битных систем Full-UEFI, и мне, похоже, это удалось.

Это старый вопросник, но это все еще кажется проблемой. (Мне потребовалось некоторое время, чтобы прийти к рабочему решению.)

Вот что я сделал:

Я сделал новый Ubuntu Keydrive

На рабочей станции Windows 10 я использовал последнюю версию Rufus для создания образа рабочего стола Ubuntu 17.04 (x64) на USB-накопителе объемом 4 ГБ. В Руфусе я выбрал:

  • GPT за UEFI разделение
  • FAT32 файловая система (я бы предпочел exFAT, но Rufus v2.17 не будет применять ISO без FAT32)
  • ISO Image вместо FreeDOS на Create a bootable disk using вариант

Я скопировал файлы MemTest на него

Я скачал PassMark MemTest86 UEFI-совместимый (с закрытым исходным кодом) инструмент, доступный бесплатно. Затем я:

  • Извлечено загруженное memtest86-usb.zip в папку .\memtest86-usb
  • Нашел извлеченный образ диска на .\memtest86-usb\memtest86-usb.img (152.7MiB)
  • Скопировал это в \boot папка моего нового дисковода Ubuntu (см., скажем, на диске E: ) создавать:
    • E:\boot\memtest86-usb.img

    Я настроил загрузчик

    Наконец, я изменил меню параметров загрузки на дисководе ключей. Ubuntu 17.04 использует grub2 Загрузчик. Список пунктов меню настроен в E:\boot\grub\grub.cfg , Я добавил следующие строки в конец этого файла (создав новую запись списка параметров загрузки):

    Заметки:

    1. Windows notepad НЕ должен использоваться для этого редактирования. Он плохо воспроизводит текстовые файлы в режиме "unix" и разрушает new-line символы, если вы пытаетесь сохранить какие-либо изменения.
    2. BOOTX64.efi это 64-bit EFI исполняемый двоичный образ. E сть 32-bit EFI файл доступен внутри файловой системы " loop Эд-обратно "в memtest86-usb.img , Это называется BOOTIA32.efi , Вы можете создать еще одну запись для этого, но мне это не нужно.
    3. Кажется, что выбор этой записи занимает много времени grub2 чтобы увидеть любые положительные отзывы на экране. На моем Intel Atom X5-Z8350 на экране, экран становится черным, может быть, за 30 секунд до MemTest86 процесс начал заметно загружаться. Затем выполняется дюжина шагов сканирования системы, прежде чем вы увидите MemTest экран. (Это может быть по ряду причин, например, эмуляция файловой системы, несколько этапов передачи обслуживания загрузчика.)

    Во время навигации по этому проблемному пространству я получил полезные подсказки из этого ответа на вопрос, достаточно похожий, чтобы его можно было считать дубликатом. (У меня нет системного кредита, чтобы пометить его как таковой.) И, выбирая "загрузочное программное обеспечение для создания USB-накопителей", я получил некоторое подтверждение от различных ресурсов, касающихся инструмента Rufus.

    kak-polzovatsya-memtest86

    Программа MemTest86+ создана для тестирования оперативной памяти. Проверка происходит в автоматическом или ручном режиме. Для работы с программой необходимо создать загрузочный диск или флешку. Что мы сейчас и сделаем.

    Создание загрузочного диска с MemTest86+ в среде Windows

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

    konechnyiy-etap-sozdaniya-zagruzochnoy-fleshki-dlya-programmyi-memtest86

    Начало тестирования

    Программа поддерживает загрузку из UEFI и BIOS-системы. Чтобы начать тестирование оперативной памяти в MemTest86+, при перезагрузке компьютера выставляем в BIOS, загрузку с флешки (Она должна быть первой в списке).

    Настройка MemTest86+

    Если, вы приобрели полную версию MemTest86+, то после ее запуска появится заставка, в виде 10-секундного таймера обратного отсчета. По истечении данного времени, MemTest86+ автоматически запускает тесты памяти с настройками по умолчанию. Нажатие клавиш или движения мышкой должны остановить таймер. Главное меню позволяет пользователю настраивать параметры, например, тесты на выполнение, диапазон адресов для проверки и какой процессор будет использоваться.

    proverka-pamyati-s-pomoshhyu-programmyi-memtest86

    Главное Меню MemTest86+

    Главное меню имеет следующую структуру:

    glavnoe-menyu-memtest86-polnaya-versiya

    Если ничего не настраивалось, тестирование пройдет по заданному алгоритму. Память будет проверена всеми тестами, причем, при возникновении ошибок, сканирование будет продолжаться пока пользователь не остановит процесс. При отсутствии ошибок, на экране появиться соответствующая запись и проверка остановиться.

    Описание Отдельных Тестов

    MemTest86+ выполняет ряд нумерованных тестов для проверки ошибок.

    vyibor-testa-v-ruchnom-rezhime-v-programme-memtest86

    Терминология программы MemTest86+

    tstlist-v-programme-memtest86

    Результаты Теста

    После окончания тестирования будет отображен результат проверки.

    Lowest Error Address:

    Highest Error Address:

    Bits in Error Mask:

    Bits in Error:

    Max Contiguous Errors:

    ECC Correctable Errors:

    Test Errors:

    rezultat-testirovaniya-v-programme-memtest86

    Пользователь может сохранить результаты в виде отчетов в HTML-файл.

    Время Выполнения

    Время, необходимое для полного прохода MemTest86+ сильно зависит от скорости процессора, скорости и объема памяти. Обычно, одного прохода достаточно, чтобы определить все, кроме самых непонятных ошибок. Для полной уверенности, рекомендуется сделать несколько прогонов.

    Восстановить дисковое пространство на флешке

    После использования программы на флешке, пользователи отмечают что накопитель уменьшился в объеме. Это действительно так. Ёмкость моей 8 Гб. флешки уменьшилась до 45 Мб.

    umenshenie-emkosti-fleshki-posle-ispolzovaniya-memtest86

    upravlenie-diskam-posle-ispolzovaniya-memtest86

    diskpart-dlya-ispravleniya-fleshki-posle-ispolzovaniya-memtest86

    komanda-list-disk-dlya-ispravleniya-fleshki-posle-ispolzovaniya-memtest86

    komanda-clean-dlya-ispravleniya-fleshki-posle-ispolzovaniya-memtest86

    upravlenie-diskam-posle-ispolzovaniya-memtest86

    sozdanie-novogo-toma-fleshki-posle-ispolzovaniya-memtest86

    На конечном этапе флешка форматируется. Можно проверять.

    Видео-урок:

    Протестировав программу MemTest86+, я остался доволен. Это действительно мощный инструмент, который позволяет протестировать оперативную память различными способами. Однако, при отсутствии полной версии доступна только функция автоматической проверки, но в большинстве случаев ее достаточно для выявления большинства проблем с оперативной памятью.

    Закрыть

    Мы рады, что смогли помочь Вам в решении проблемы.

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Закрыть

    Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

    Читайте также: