Kernel/hardware errors: различия между версиями

Материал из ALT Linux Wiki
(memtest=4)
(→‎Проверка: GRUB_BADRAM+memmap)
Строка 8: Строка 8:
*# установить пакет {{Pkg|edk2-efi-shell}} и скопировать {{Path|/usr/lib64/efi/shell.efi}} в {{Path|/boot/efi}}
*# установить пакет {{Pkg|edk2-efi-shell}} и скопировать {{Path|/usr/lib64/efi/shell.efi}} в {{Path|/boot/efi}}
*# В BIOS запустить EFI Shell и там запустить {{Cmd|memtest86}}.
*# В BIOS запустить EFI Shell и там запустить {{Cmd|memtest86}}.
Один прогон проверки памяти может занимать несколько часов.
Один прогон проверки памяти может занимать несколько часов. Битую память лучше заменить но, если это невозможно, то можно попробовать отключить найденные адреса из использования в системе (через <code>GRUB_BADRAM=</code> или параметр командной строки ядра <code>memmap=</code>).
* Так де можно добавить '''memtest=4''' в командную строку ядра, тогда при загрузке будет выполнено 4 прохода тестирования памяти и плохая память автоматически исключена из работы. Учитывайте, что это увеличивает время перезагрузки.
* Так де можно добавить '''memtest=4''' в командную строку ядра, тогда при загрузке будет выполнено 4 прохода тестирования памяти и плохая память автоматически исключена из работы. Учитывайте, что это увеличивает время перезагрузки.


== Мониторинг ошибок ==
== Мониторинг ошибок ==

Версия от 04:07, 14 января 2024

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

Память

Проверка

  • Memtest86+: как правило, доступен в меню Advanced options for ALT Sisyphus Sisyphus при загрузке через grub. — https://www.memtest.org/
  • efi-memtest86: (он же при загрузке через EFI) — https://www.memtest86.com/
    Для использования необходимо:
    1. установить пакет efi-memtest86 и скопировать /usr/lib64/efi/memtest86.efi в /boot/efi
    2. установить пакет edk2-efi-shell и скопировать /usr/lib64/efi/shell.efi в /boot/efi
    3. В BIOS запустить EFI Shell и там запустить memtest86.

Один прогон проверки памяти может занимать несколько часов. Битую память лучше заменить но, если это невозможно, то можно попробовать отключить найденные адреса из использования в системе (через GRUB_BADRAM= или параметр командной строки ядра memmap=).

  • Так де можно добавить memtest=4 в командную строку ядра, тогда при загрузке будет выполнено 4 прохода тестирования памяти и плохая память автоматически исключена из работы. Учитывайте, что это увеличивает время перезагрузки.

Мониторинг ошибок

  • mcelog: (считается устаревшим и) не поддерживается в ядрах Альта (отсутствует /dev/mcelog устройство).
    "mcelog logs and accounts machine checks (in particular memory, IO, and CPU hardware errors) on modern x86 Linux systems."https://mcelog.org/
  • edac-util: рабочий вариант, но плохо поддерживается апстримом.
    "Userspace helper for kernel EDAC drivers (Error Detection and Correction)"https://github.com/grondo/edac-utils
  • rasdaemon: современное решение. Мониторит не только память, а любые доступные ему аппаратные ошибки.
    "Those tools provide a way to get Platform Reliability, Availability and Serviceability (RAS) reports made via the Kernel tracing events."https://github.com/mchehab/rasdaemon
 # apt-get install rasdaemon
 # systemctl enable --now rasdaemon

Диски

  • smartmontools:
    • Утилита smartctl показывает информацию по состоянию дисков из S.M.A.R.T. Так же она позволяет запустить два внутренних теста дисков (self-tests) - т.н. короткий и долгой (сканирует всю поверхность дисков).
    • Сервис smartd: позволяет постоянно мониторить S.M.A.R.T. параметры.

Сеть

  • iproute2:
    • Команда ip link: покажет физическое состояние (наличие сигнала) каждого интерфейса: NO-CARRIER или LOWER_UP.
    • Команда ip -s link: дополнительно покажет статистику в столбцах errors.
  • net-tools: олдскульные утилиты аналоги iproute2: ifconfig: статистика errors; netstat -i: статистика RX-ERR, TX-ERR.
  • ethtool: Покажет состояние соединения (Link detected - аналог предыдущей информации о наличии сигнала от ip link), ошибки в настройках Speed, Duplex, а с опцией -S покажет статистку включающую errors, drops.

Сообщения ядра

  • dmesg -l err список сообщений об ошибках в логе ядра — среди них могут быть сообщения от аппаратных ошибках.
  • journalctl -k -p err та же информация в системе с systemd. Кроме того, dmesg буфер может заполниться и потерять начало загрузки системы, а в журнале информация все ещё быть.

Пример сообщения:

mce: [Hardware Error]: Machine check events logged
mce: [Hardware Error]: CPU 3: Machine Check: 0 Bank 0: 9400004000040150
mce: [Hardware Error]: TSC 14e0d7f5aadeb0 ADDR 1ffffb00b542f
mce: [Hardware Error]: PROCESSOR 0:a0655 TIME 1682972918 SOCKET 0 APIC 6 microcode f4

Информация о оборудовании

  • lscpu, lspci, dmidecode, lsblk, lsscsi, lsusb, nvme: информация по отдельным подсистемам.
  • inxi 🏆, lshw, hwinfo: агрегаторы информации по системе (CLI).
  • lshw-gui, hardinfo: агрегаторы информации по системе (GUI).