Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.035 секунд. Запросов: 25.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Memtest86 и Memtest86+
Кремниевые пластины делают всего несколько производителей, режут и упаковывают их гораздо больше, а планки памяти делают столько разных контор, что мы можем долго удивлять друг друга их названиями в комментариях. Память редко выходит из строя и бракованная встречается редко, вот и стали чаще оперативку распаивать на материнских платах. Производителям так дешевле и устройство получается более одноразовым. В таких условиях полезно иметь возможность определить, что именно память работает плохо.
Утилита Memtest86 развивается давно и почти непрерывно. После того, как в 2013 проект был куплен компанией PassMark (Австралия), код был закрыт и возникла платная версия PRO. Потом у утилиты появилась подпись от Microsoft для Secure boot и красивый графический интерфейс с поддержкой мыши и пользовательскими опциями. Есть поддержка других языков включая русский, а Руководство Пользователя имеет 101 страницу.
В 2004 году, когда развитие Memtest86 было на паузе, появился форк под названием Memtest86+. Подходы к проверке памяти те же и тесты такие же. Но разработка форка остановилась на версии 5.31 для Legacy BIOS. Через какое-то время уже от него возник форк PCMemTest и развитие продолжилось другим разработчиком. А недавно, в октябре 2022, они объединили свои усилия и в рамках проекта Memtest86+ выпустили бету 6.0.
Почти весь код был переписан заново, отброшены старые подходы и поддержка Legacy, теперь только UEFI, но по-прежнему простейший интерфейс. Сообщество с теплотой встретило возобновление разработки. Код открыт, лицензия GPL-2.0 — везде были позитивные комментарии. Во всех основных ветках Linux (arch, debian, fedora, gentoo) оперативно появились пакеты, состоящие из Memtest86+ и скрипта, добавляющего его в меню grub. Это удобно, потому что с тех пор утилита уже трижды обновилась и сейчас текущая версия 6.20.
А утилиту можно запускать и с загрузочной флешки, в частности с Ventoy. Скачайте с сайта архив с бинарниками, извлеките оттуда memtest64.efi, поместите на флешку и выбирайте его после загрузки. Вариант memtest64.bin в архиве — это, скорее всего, последняя версия 5.31 для Legacy, но я не проверял.
Memtest86 тоже можно запускать с Ventoy. Скачайте архив, извлеките оттуда memtest86-usb.img и поместите на флешку. Сразу бросается в глаза большой размер, а не всё там нужно. Пока Ventoy раскроет все образы, пока найдёт нужный BOOTX64.efi и запустит — стартует долго. Можно извлечь из образа как из архива другой образ, меньшего размера — EFI System Partition.img и его поместить на флешку, стартовать будет быстрее. Но и в нём много лишнего. Можно извлечь из этого образа папку BOOT и только её поместить на флешку. Даже в BOOT файлы BOOTAA64.efi и BOOTIA32.efi лишние. Теперь стартовать будет быстро, ведь не надо раскрывать образы.
У меня есть десктоп с EFI (ранний UEFI), там не сохраняются скриншоты по F12, а при запуске из образа они сохраняются, причём прямо в образ, ведь его держит открытым Ventoy! Да, от реализации EFI прошивки зависит многое, например взаимодействие с USB клавиатурой, вот и нет реакции на нажатие F12.
Вдумчивые пользователи заметят, что раскрытие образов занимает память, которую планируется проверять. А перфекционисты скажут, что вообще grub (или другой менеджер) в памяти лишний, желательно запускать тест прямо из UEFI. Резонно, так давайте организуем это для Memtest86+.
Сначала укоротим имя файла с memtest64.efi до memtest.efi. Необходимость этого не проверял, просто избегаю проблем. Поместим его по пути /boot/efi/EFI/memtest/memtest.efi
Создадим в nvram загрузочную запись с названием Memtest и указанием на расположение файла:
sudo efibootmgr -c -L "Memtest" -l '\EFI\memtest\memtest.efi'
В Boot Menu BIOS появится строка Memtest для запуска проверки. Следить за обновлениями версий придётся самостоятельно.
Аналогично можно прописать и Memtest86, указав на его BOOTX64.efi. Для полноценной работы нужно поместить на EFI раздел всю папку BOOT (без двух лишних файлов). Скриншоты будут сохранятся по F12 на EFI раздел, а это не хорошо, придётся следить, сколько их накопилось. Вот почему разработчики рекомендуют загрузку с флешки, хотя при этом занимается больше памяти.
Платная версия предлагает получение и сохранение более детальных отчётов, сохранение конфигурации и кое-что по мелочи. Набор тестов тот же, но начат поиск подходов к работе с ECC. А ещё там другой набор шрифтов.

Пользоваться утилитами просто. Memetest86+ циклически повторяет свой набор тестов, показывая, сколько было сделано проходов. Один проход для 16Гб длится более 20 минут. Проверку можно завершить в любой момент нажав Esc. В процессе нужно смотреть на температуру. Когда она перестанет нарастать — установилось термодинамическое равновесие и скоро можно останавливать тест. Обычно достаточно 2-3 прохода.

В Memetest86 есть дополнительный Hammer test. Глобально, это непростая и интересная тема с названием rowhammer, а на сегодняшний день тест проверяет, уязвима ли DDR3. С ростом у неё рабочей частоты, было обнаружено явление, дающее шанс для применения эксплойта, но этим фактом сначала по незнанию, а потом по инерции пренебрегали в 2012-2013 годах. Ведущие производители чипов не сразу, но скорректировали процесс производства, так что текущий тест актуален, в основном, для продукции, выпущенной в указанный период «слабыми» именами. При производстве DDR4 уже известные проблемы были, во многом, учтены, но картина стала сложнее, как для создания теста, так и эксплойта. Тест не длительный, поэтому один проход всего набора тоже длится чуть более 20 минут, но предлагается сделать 4 прохода.

Разработчики дистрибутивов с собственными репозиториями отслеживают события в мире софта по-разному, а мне интересно, как это делают наши.
В Calculate быстро отреагировали на возвращение утилиты — сразу появилась.
В ALT недавно добавили её в Сизиф и в свежих установочных образах starterkits она уже есть.
В ROSA нашлась только версия 6.0, а в описании сказано, что она для i386. Запустил и проверил 16Гб за такое же время, как и версией 6.2. Скорее всего у них ошибка в описании.
В RED OS с радостью увидел пакет с версией 6.2, но его установка — это лишь загрузка двух файлов в /usr/lib64/memtest86+/ и всё, т.е. сходу утилитой не воспользоваться.
В Astra Linux поиском memtest ничего не нашлось.
Спасибо всем за внимание. Удивите в комментариях производителями оперативки.
Добавление memtest86 к загрузчику Grub2 в Ubuntu с UEFI
После установки Ubuntu memtest86+ автоматом появился в меню загрузчика grub, так что тестировать память можно было без создания загрузочной флешки. И всё было прекрасно до появления UEFI. На древнем компьютере без UEFI всё также есть строчка memtest в загрузчике, но она исчезает из-за отсутствия поддержки UEFI у memtest86+.
memtest86 стал продолжением memtest86+. Хотя последний — это уже продукт, принадлежащей коммерческой структур, он доступен для бесплатного использования.
memtest86 можно скачать с сайта memtest86.com/download.htm. Версия 9 этого приложения доступна только для UEFI. Скачиваемый архив memtest86-usb.zip содержит файл memtest86-usb.img, а также другие файлы, которые нам не понадобятся. Образ .img легко открывается в Ubuntu в виде папки, для чего достаточно в файловом менеджере открыть .img образ при помощи Disk Image Mounter (можно конечно воспользоваться и командой mount, но лень рассчитывать смещение) или даже простого файлового менеджера, например, PCManFM.

Можно скопировать при помощи файлового менеджера содержимое образа в папку, например, ~/Downloads/memtest.
Содержимое образа можно нужно скопировать в /boot/efi/EFI/, создав в последней папке, например, подпапку memtest.
sudo mkdir /boot/efi/EFI/memtest
Но достаточно скопировать не всё содержимое образа, а только содержимое подпапки /BOOT/EFI:
sudo cp -r ~/Downloads/memtest/EFI/BOOT/ /boot/efi/EFI/memtest/
При копировании при помощи cp директория /boot/efi/EFI/memtest создаётся автоматически, т.ч. можно обойтись без mkdir.

Далее приступаем к изменениям в загрузчике grub. Можно конечно воспользоваться grub-customizer, но данное приложение может привести к такому количеству проблем, что лучше вместо этого поработать ручкам.
В папке /etc/grub нужно создать новый файл, который не перезапишет старый. В моём случае это был /etc/grub.d/50_memtest
sudo gedit /etc/grub.d/50_memtest
Далее добавляем в созданный текстовый файл (в моём случае /etc/grub.d/50_memtest) chainloader для нужного .efi файла
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the ‘exec tail’ line above.
menuentry ‘memtest86’ insmod part_gpt
insmod fat
set root=’hd2,gpt3′
chainloader /efi/memtest/bootx64.efi
>
В set root значение берётся вовсе не произвольно. Если у меня EFI раздел находится на sdc3 (посмотреть можно при помощи disks или gparted), то это третье устройство (поэтом hd2, т.к. индексы начинаются с нуля) и gpt3, потому как sdc3.

Если у вас EFI раздел на sda2, то первый диск (a) превратится в hd0, а sd2 в gpt2 и получим (hd0,gpt2).
Если у вас EFI раздел на sdb1, то второй диск (b) превратится в hd1, а sd1 в gpt1 и получим (hd1,gpt1).
Могут быть и другие разделы, но логика останется прежней.
После сохранения текстового файла, нужно предоставить доступ к нему:
sudo chown root:root /etc/grub.d/50_memtest
sudo chmod 755 /etc/grub.d/50_memtest
Далее обновляем grub
sudo update-grub
Успешное выполнение последней команды в моём случае привело к появлению следующего сообщения:
Sourcing file `/etc/default/grub’
Sourcing file `/etc/default/grub.d/init-select.cfg’
Generating grub configuration file .
Found linux image: /boot/vmlinuz-5.11.0-34-generic
Found initrd image: /boot/initrd.img-5.11.0-34-generic
Found linux image: /boot/vmlinuz-5.11.0-31-generic
Found initrd image: /boot/initrd.img-5.11.0-31-generic
Found Windows Boot Manager on /dev/sdc3@/EFI/Microsoft/Boot/bootmgfw.e fi
Adding boot menu entry for UEFI Firmware Settings
done
Хотя в последнем сообщении нет ни строчки про memtest, главное — что нет ошибок. После перезагрузки компьютера в grub есть строка с memtest и тестировать память можно сразу после запуска компьютера, без дополнительных загрузочных дисков.
Интересено, что в пути «/efi/memtest/bootx64.efi» все буквы в файле /etc/grub.d/50_memtest строчные, хотя в Linux названия папок могут быть и с заглавными буквами. Вроде бы fat32 раздел. Но когда использовал /EFI/memtest/BOOTX64.efi, то после выполнения update-grub получал следующую ошибку:
Found memdisk: /boot/memdisk
Imagepath /boot/images not found
С такой ошибкой строчка c memtest в загрузчике grub после перезагрузки компьютера появлялась, но запускаться memtest не хотел, (возникала ошибка, что файл не найден системой).
Перед перезагрузкой можно выполнить команду
awk -F\’ ‘/menuentry / ‘ /boot/grub/grub.cfg
которая покажет, какие пункты присутствуют в меню grub
Ubuntu
Ubuntu, with Linux 5.11.0-34-generic
Ubuntu, with Linux 5.11.0-34-generic (recovery mode)
Ubuntu, with Linux 5.11.0-31-generic
Ubuntu, with Linux 5.11.0-31-generic (recovery mode)
Windows Boot Manager (on /dev/sdc3)
UEFI Firmware Settings
memtest86
Ещё одна проблема, с которой столкнулся — невозможность запуска memtest86 из grub из-за ошибки
disk not found ‘hd2,gpt3’
При этом поначалу всё работало, а после по непонятной причине повторить запуск memtest86 не удавалось. Оказалось, что подключенное USB устройство (электронная книжка стояла на зарядке через компьютерный порт) меняло порядок дисков, поэтому нужный и не находился. После отключения устройства memtest86 прекрасно работал.
p.s. Пока возился в UEFI, обнаружил, что у меня отключена безопасная загрузка (UEFI Secure Boot). Ubuntu в первый раз устанавливалась, когда других вариантов не было. Но сейчас безопасную загрузку можно спокойно включить. При этом из grub прекрасно запускаются Ubuntu 21.04, Windows 10 и memtest86. Отключение Secure Boot может понадобиться при восстановлении системы, когда при загрузке возникнет сообщение об ошибке, запрещающее небезопасную загрузку.
Пошаговая инструкция к программе Memtest86. Тестирование оперативной памяти компьютера/ноутбука.


Самым надежным вариантом тестирования оперативной памяти является программа MemTest86+.
Нам необходимо записать утилиту Memtest86 на DVD диск либо флешку или создать загрузочную флешку , в состав которой входит данная программа. Читаем статью “ Как создать мультизагрузочную флешку “, следуем пошаговой инструкции. После того как создана загрузочная флешка производим загрузку с неё, обычно для этого я использую “горячие клавиши” F8, F12, F11, Esc+клавиша отвечающая за быструю загрузку, в зависимости от модели мат. платы на компьютере/ноутбуке. После загрузки видим окно:

Заходим в дополнительные утилиты и выбираем Memtest86. Если все прошло успешно видим такую картинку:

После запуска программа будет проверять вашу оперативную память бесконечно, пока вы её не остановите клавишей ESC. Проверять можно как все модули памяти сразу, так и по одной. Проверяя все модули памяти, программа не скажет на какой именно ошибки, так что если есть ошибки, проверяйте лучше по одному модулю. Для проверки лучше сделать несколько циклов. А для максимального эффекта, лучше поставить проверку на ночь . Поле Pass означает количество проделанных циклов. Если у вас будут ошибки в памяти (колонка Error), вы увидите следующее:

Исправить оперативную память при наличии ошибок в программе невозможно. Это не как в жестком диске затереть битые сектора. Я рекомендую вот что:
Самое распространённое – это выход из строя модуля оперативной памяти. Тестируем по одному модулю. Сначала этот модуль ставим в слот под оперативную память №1.

Тестируем,смотрим результат. Если ошибки есть как показано на рис. выше (там где выделено красным в программе Memtest), то ставим этот модуль слот под оперативную память №2. Тестируем,смотрим результат. Если ничего не изменилось,то модуль неисправен и подлежит замене. Меняем или ставим другой модуль памяти,тестируем. Если модуль памяти исправен,по окончанию теста в видим следующее:

Бывает что неисправен слот для оперативной памяти на мат. плате. В этом случае подключаем модуль в другой свободный слот, далее рассматриваем целесообразность работы компьютера в данной конфигурации с неисправным слотом под оперативную память, целесообразность замены материнской платы, а может вас и так всё устроит, и объёма памяти вам будет достаточно.
В программе — 9 тестов:
Test 0 — [Address test, walking ones, no cache] – тестирования для выяснения проблем в адресе памяти.
Test 1 — [Addresstest, ownaddress] – глубокий тест для выявления ошибок в адресационной прописки памяти
Test 2 — [Movinginversions, ones&zeros] – проверка на трудноуловимые и аппаратные ошибки.
Test 3 — [Movinginversions, 8 bitpat] – как и предыдущий тест, только в нем используется алгоритм в 8ми битном подходе от 0 до 1. Тестируется 20 различных методов.
Test 4 — [Moving inversions, random pattern] – Выявление ошибок связанных с data sensitive. В этом тесте 60 различных методов.
Test 5 — [Block move, 64 moves] – Поиск проблем в схемах оперативной памяти.
Test 6 — [Moving inversions, 32 bit pat] – Самый долгий тест для выявления data sensitive errors.
Test 7 — [Randomnumbersequence] – Проверка ошибок в записи памяти.
Test 8 — [Modulo 20, ones&zeros] – Выявление скрытых ошибок в оперативной памяти с помощью буферизации и кеша.
Test 9 — [Bit fade test, 90 min, 2 patterns] – Тест может быть включен вручную. Он записывает адреса в памяти, после чего уходит в сон на 1.5 часа. После выхода из сна, сверяет биты в адресах, на схожесть. Клавишей C для ручного запуска. Тест требует около 3х часов времени.
Теперь вы увидели как проводится тестирование оперативной памяти, как восстановить её работоспособность самостоятельно и проверить с помощью программы Memtest86 с приведенной инструкцией.