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

Материал из ALT Linux Wiki
 
(не показано 20 промежуточных версий этого же участника)
Строка 1: Строка 1:
Перед тем, как заполнять баг-репорт, рекомендуется провести проверку аппаратных компонентов на наличие ошибок. Возникновение аппаратных проблем может привести к появлению "мистических глюков", которые никто не сможет исправить, так как они специфичны только для вашего устройства. Однако эти глюки будут отнимать время и вызывать ложные подозрения о наличии ошибок в ПО.
Перед заполнением баг-репорта рекомендуется проверить аппаратные компоненты на наличие ошибок. Возникновение аппаратных проблем может привести к появлению "мистических глюков", которые никто не сможет исправить, так как они специфичны только для вашего устройства. Однако эти глюки будут отнимать время и вызывать ложные подозрения о наличии ошибок в ПО.


= Проверка системы =
= Память =
== Память ==
== Проверка ==
* '''Memtest86+''': как правило, доступен в меню {{menuitem|Advanced options for ALT Sisyphus Sisyphus}} при загрузке через grub. — https://www.memtest.org/
* '''Memtest86+''': как правило, доступен в меню {{menuitem|Advanced options for ALT Sisyphus Sisyphus}} при загрузке через grub. — https://www.memtest.org/
* '''efi-memtest86''': (при загрузке через EFI) https://www.memtest86.com/ <br> Для использования необходимо:
Один прогон проверки памяти может занимать несколько часов. Битую память лучше заменить. Однако, если это невозможно, можно попробовать отключить найденные адреса от использования в системе (через <code>GRUB_BADRAM=</code> или параметр командной строки ядра <code>memmap=</code>).
*# установить пакет {{Pkg|efi-memtest86}} и скопировать {{Path|/usr/lib64/efi/memtest86.efi}} в {{Path|/boot/efi}}
* '''memtest''' в ядре Linux если добавить <code>memtest=4</code> в командную строку ядра, тогда при загрузке будет выполнено 4 прохода тестирования памяти и плохая память будет автоматически исключена из работы. Учитывайте, что это увеличивает время перезагрузки.
*# установить пакет {{Pkg|edk2-efi-shell}} и скопировать {{Path|/usr/lib64/efi/shell.efi}} в {{Path|/boot/efi}}
*# В BIOS запустить EFI Shell и там запустить {{Cmd|memtest86}}.
Один прогон проверки памяти может занимать несколько часов.


== Диски ==
== Мониторинг ошибок ==
* '''smartmontools''': Утилита '''smartctl''' показывает информацию по состоянию дисков из S.M.A.R.T. Так же она позволяет запустить два теста - т.н. короткий и долгой (сканирует всю поверхность дисков).
 
== Сеть ==
* '''iproute2''': Команда '''ip link''': покажет физическое состояние каждого интерфейса: <code>NO-CARRIER</code> или <code>LOWER_UP</code>.
* '''ethtool''': Покажет состояние соединения (<code>Link detected</code> - аналог предыдущей информации от <code>ip link</code>), ошибки в настройках <code>Speed</code>, <code>Duplex</code>, а с опцией <code>-S</code> покажет статистку включающую errors, drops.
 
== Сообщения об ошибках ==
* '''dmesg -l err''' список сообщений об ошибках в логе ядра — среди них могут быть сообщения от аппаратных ошибках.
* '''journalctl -k -p err''' та же информация в системе с systemd. Кроме того, <code>dmesg</code> буфер может заполниться, а в журнале информация все ещё быть.
 
= Мониторинг =
== Память ==
* '''mcelog''': (считается устаревшим и) не поддерживается в ядрах Альта (отсутствует {{Path|/dev/mcelog}} устройство). <br> ''"mcelog logs and accounts machine checks (in particular memory, IO, and CPU hardware errors) on modern x86 Linux systems."'' — https://mcelog.org/
* '''mcelog''': (считается устаревшим и) не поддерживается в ядрах Альта (отсутствует {{Path|/dev/mcelog}} устройство). <br> ''"mcelog logs and accounts machine checks (in particular memory, IO, and CPU hardware errors) on modern x86 Linux systems."'' — https://mcelog.org/
* '''edac-util''': рабочий вариант, но плохо поддерживается апстримом. <br> ''"Userspace helper for kernel EDAC drivers (Error Detection and Correction)"'' — https://github.com/grondo/edac-utils
* '''edac-util''': рабочий вариант, но плохо поддерживается апстримом. <br> ''"Userspace helper for kernel EDAC drivers (Error Detection and Correction)"'' — https://github.com/grondo/edac-utils
Строка 28: Строка 13:
   # apt-get install rasdaemon
   # apt-get install rasdaemon
   # systemctl enable --now rasdaemon
   # systemctl enable --now rasdaemon
: Ошибки записываются во единую внутреннюю базу данных, для просмотра используется утилита <code>ras-mc-ctl</code>.
= Диски =
* '''smartmontools''':
** Утилита '''<code>smartctl</code>''' показывает информацию по состоянию дисков из S.M.A.R.T. Так же она позволяет запустить два внутренних теста дисков (self-tests) - т.н. короткий и долгой (сканирует всю поверхность дисков).
** Сервис '''smartd''': позволяет постоянно мониторить S.M.A.R.T. параметры.
= Сеть =
* '''iproute2''':
** Команда <code>ip link</code>: покажет физическое состояние (наличие сигнала) каждого интерфейса: <code>NO-CARRIER</code> или <code>LOWER_UP</code>.
** Команда <code>ip -s link</code>: дополнительно покажет статистику в столбцах errors.
* '''net-tools''': олдскульные утилиты аналоги iproute2: <code>ifconfig</code>: статистика errors; <code>netstat -i</code>: статистика RX-ERR, TX-ERR.
* '''ethtool''': Покажет состояние соединения (<code>Link detected</code> - аналог предыдущей информации о наличии сигнала от <code>ip link</code>), ошибки в настройках <code>Speed</code>, <code>Duplex</code>, а с опцией <code>-S</code> покажет статистку включающую errors, drops.


== Диски ==
= Сообщения ядра =
* '''smartmontools''': позволяет постоянно мониторить S.M.A.R.T. параметры через сервис '''smartd'''.
* '''<code>dmesg -l err</code>''' список сообщений об ошибках в логе ядра — среди них могут быть сообщения от аппаратных ошибках.
* <code>'''journalctl -k -p err'''</code> та же информация в системе с systemd. Кроме того, <code>dmesg</code> буфер может заполниться и потерять начало загрузки системы, а в журнале информация все ещё быть.
Пример сообщения:
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).


{{Category navigation|title=Kernel|category=Kernel|sortkey=*}}
{{Category navigation|title=Kernel|category=Kernel|sortkey=*}}

Текущая версия от 13:56, 1 сентября 2024

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

Память

Проверка

  • Memtest86+: как правило, доступен в меню Advanced options for ALT Sisyphus Sisyphus при загрузке через grub. — https://www.memtest.org/

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

  • memtest в ядре Linux — если добавить 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
Ошибки записываются во единую внутреннюю базу данных, для просмотра используется утилита ras-mc-ctl.

Диски

  • 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).