Диагностика оборудования и системы

Материал из ALT Linux Wiki
TODO:
в стадии наполнения


Задачи

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

Внимание! Для тех у кого возникнет желание править данную статью - пожалуйста проверяйте команды перед их добавлением в статью, главная задача не принести вреда
конечному пользователю


Дистрибутив и система

Команда Описание
lsb_release -a Вывод названия и версии используемого дистрибутива
dmidecode | grep -A 9 "System Information" Информация о модели ПК или ноутбука
dmidecode | less Полный вывод о компонентах ПК
inxi -F Информация о модели ПК или ноутбука в утилите inxi
inxi -S | grep Desktop Листинг. Выводит версию DE и Версию дистрибутива
distro_info -e Проверка имени и версии дистрибутива аналог lsb_release -a. Используется в проектах Etersoft EPM и rpm-build-altlinux-compat
cat /etc/*release* Аналогично предыдущей команде, плюс информация о базовом дистрибутиве
uname -a Вывод информации о системе, дистрибутиве и архитектуре (32/64 бита)
ls /EFI/Microsoft/Boot Отобразить загрузочную запись windows, наличие файлов bootmgfw.efi или bootmgr.efi говорит о ее установке
calendar | grep Ubuntu Информация о дистрибутиве. Пакет собран в Autoimports BaseAlt, доступен для сборки в сизиф.
efibootmgr Отобразить доступные загрузочные записи в UEFI BIOS. Для редактирования читать man efibootmgr
efibootmgr -Bb xxxx Осторожно! Удаление пункта из EFI. Иксы это номер загрузчика из вывода efibootmgr (boot0003 то номер будет 0003).

Менеджер входа в систему

Команда Описание
upower -i /org/freedesktop/UPower/devices/battery_BAT0 Отобразить состояние батареи с помощью Upower
upower -i `upower -e | grep 'BAT'` Отобразить состояние батареи с помощью Upower. Дополнительная команда.

pstree Просмотр дерева процессов wmctrl -m Узнать какой менеджер входа используеться wmctrl -d Список всех рабочих столов, управляемых оконным менеджером wmctrl -l Список окон, управляемых оконным менеджером last Просмотреть историю всех успешных входов в систему last <username> Просмотр истории входа определенного пользователя last -i Отображать IP-адреса в истории входа вместо имени хоста last -N Отображать только последние N логинов last -f /var/log/btmp Просмотр всех неудачных попыток входа на ваш сервер Linux - или lastb развернуть Fail2Ban для защиты вашего сервера в таких случаях. Fail2Ban забанит такие IP-адреса с вашего сервера и тем самым предоставит вашему серверу дополнительный уровень защиты. printf 'Desktop: %s\nSession: %s\n' "$XDG_CURRENT_DESKTOP" "$GDMSESSION" В терминале введите envвсе переменные окружения. Некоторые из них: XDG_CURRENT_DESKTOP - сообщает, какую среду рабочего стола вы используете GDMSESSION - Сообщает вам, какую опцию вы выбрали на приветствии lightdm для входа. Чтобы использовать их, перейдите в терминал и введите: echo $XDG_CURRENT_DESKTOP (Будет выводить, например, «Unity», если вы используете Unity) или же echo $GDMSESSION (Будет выводиться, например, «Ubuntu», если вы выбрали Ubuntu в логин или «Ubuntu-2d», если вы выбрали тот в логин.) У вас есть другие, если вы посмотрите ближе к выводамenv вроде DESKTOP_SESSION и COMPIZ_CONFIG_PROFILE

Поскольку то, что вы ищете, - это название того, какой диспетчер окон используется, единственный способ узнать, как это сделать, - просмотреть список процессов. Для этого есть команда под названием pgrep( Википедия ). Я сделал следующее, чтобы получить имя, так как параметр -l добавляет идентификатор процесса: pgrep -l compiz |cut -d " " -f2 поскольку процесс выполняется одним и тем же пользователем, нет необходимости добавлять префикс sudo. Затем вы можете использовать это для создания сценария, который выполняет действие на основе диспетчера окон. Чтобы искать другие типы, просто измените слово compizна другое, например mutter, kwinи т.д ..

Уровень заряда батареи

Команда Описание
upower -i /org/freedesktop/UPower/devices/battery_BAT0 Отобразить состояние батареи с помощью Upower
upower -i `upower -e | grep 'BAT'` Отобразить состояние батареи с помощью Upower. Дополнительная команда.
upower -i $(upower -e | grep BAT) | grep --color=never -E "state|to\ full|to\ empty|percentage" Отобразить только состояние батареи с помощью комбинации upower и grep
acpi Показывает состояние батареи и другую информацию ACPI (только состояние заряда батареи)
acpi -V Показать все устройства питания
acpi -t Проверка температуры батареи, просмотреть вывод в градусах Фаренгейта можно, используя флаг -f: acpi -t -f
acpi -a Показать подключен ли источник переменного тока или нет.

Диагностика жесткого диска и восстановление данных

WHDD — консольная Ncurses утилита для диагностики жёстких дисков и восстановления данных с них.

WHDD позволяет протестировать жёсткие диски или другое блочное устройство на скорость чтения и записи (определение времени доступа). Утилита имеет псевдографический интерфейс и визуализирует процесс выполнения (подобно DOS-утилите MHDD).

Одним из основных достоинств WHDD является возможность выявления сбойных участков (бэд-секторов) на поверхности жёсткого диска. Утилита работает с тестируемыми дисками непосредственно через порты ввода-вывода, то есть на самом низком уровне, что позволяет получить наиболее достоверные результаты.

WHDD во время сканирования помечает бэд-сектора (bad sector / bad block), остальные блоки упорядочиваются по времени доступа к ним. В утилите присутствует функция копирования носителя, оптимизированная для максимально быстрого извлечения данных.

Запуск

1. Для запуска утилиты введите в консоли:

whdd

2. Выберите диск, с которым хотите работать

Whdd.png

3. Выберите действие, которое хотите выполнить с диском:

Whdd2.png
  • Show SMART attributes — просмотр атрибутов S.M.A.R.T.
  • Read test — тест на читаемость диска
  • Device copying — копирование жёсткого диска
  • Write zeros — заполнить жёсткий диск нулями
  • Setup Host Protected Area (HPA) — настройки защищённой области пользователя

Просмотр атрибутов S.M.A.R.T.

Команда Show SMART attributes отобразит данные о диске.

Whdd3.png

Тест на читаемость диска

a. Выбираем параметр API (ata / posix). Например, для SATA-диска набираем ata, для внешнего носителя - подключенного по USB - posix[1].

Whdd4.png

b.Выбираем начальный сектор (по умолчанию 0)

Whdd5.png

c.Выполняется тест

Whdd6.png

- res

Копирование жёсткого диска

//TODO

Заполнить жёсткий диск нулями

a.Соглашаемся с тем, что "данная операция может сделать все наши данные недоступными или даже полностью уничтожить"

Whdd7.png

b.Выполняется очистка

Whdd8.png

Настройки защищённой области пользователя

//TODO

Источники: Vk-сообщество Российская ОС РОСА Линукс, zenway.ru

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

Hardware Detection Tool (HDT) - утилита для представления различной информации об аппаратном обеспечении любой x86-совместимой системы. С помощью псевдографисеского интерфейса вы легко можете получить подробную информацию о процессоре, PCI-устройствах, памяти, дисках и пр.

Для запуска HDT, в меню syslinux, вместо Rescue LiveCD выберите Hardware Info.

Hardinfo.png

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

Проверка состояния жестких дисков

Smartmontools - утилита для проверки состояния жестких дисков при помощи SMART.

  1. Определение дисков в системе:
    # smartctl --scan

    Отобразится список дисков в вашем компьютере:

    /dev/sda -d scsi # /dev/sda, SCSI device
  2. Информация о диске
    # smartctl -i /dev/sda

    Пример:

    === START OF INFORMATION SECTION ===
    Model Family:     Toshiba 2.5" HDD MK..65GSX
    Device Model:     TOSHIBA MK3265GSXN
    Serial Number:    3192P99AT
    LU WWN Device Id: 5 000039 322201685
    Firmware Version: GH101M
    User Capacity:    320 072 933 376 bytes [320 GB]
    Sector Size:      512 bytes logical/physical
    Rotation Rate:    5400 rpm
    Form Factor:      2.5 inches
    Device is:        In smartctl database [for details use: -P show]
    ATA Version is:   ATA8-ACS (minor revision not indicated)
    SATA Version is:  SATA 2.6, 3.0 Gb/s (current: 3.0 Gb/s)
    Local Time is:    Mon Mar  5 00:02:01 2018 MSK
    SMART support is: Available - device has SMART capability.
    SMART support is: Enabled
    
  3. Подробная информация о состоянии
    # smartctl -A /dev/sda

    Пример:

    === START OF READ SMART DATA SECTION ===
    SMART Attributes Data Structure revision number: 16
    Vendor Specific SMART Attributes with Thresholds:
    ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
      1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
      2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
      3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       1141
      4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       7407
      5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
      7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
      8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
      9 Power_On_Hours          0x0032   058   058   000    Old_age   Always       -       17038
     10 Spin_Retry_Count        0x0033   245   100   030    Pre-fail  Always       -       0
     12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       7224
    191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       176
    192 Power-Off_Retract_Count 0x0032   098   098   000    Old_age   Always       -       1279
    193 Load_Cycle_Count        0x0032   047   047   000    Old_age   Always       -       531423
    194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       39 (Min/Max 10/53)
    196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
    197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
    198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
    199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       1
    220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       89
    222 Loaded_Hours            0x0032   070   070   000    Old_age   Always       -       12360
    223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
    224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
    226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       309
    240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0
    

    Ключевое значение имеет содержимое 3-х столбцов:

    • VALUE - текущее значение параметра
    • WORST - наихудшее значение, которого когда-либо достигало значение Value
    • THRESH - значение, которого должен достигнуть Value этого же атрибута, чтобы состояние атрибута было признано критическим.

    Критичным является поле WHEN_FAILED, если оно имеет значение FAIL, то высока вероятность выхода жесткого диска из строя в ближайшее время.

  4. Быстрый тест здоровья жесткого диска
    # smartctl -H /dev/sda

    Пример:

    === START OF READ SMART DATA SECTION ===
    SMART overall-health self-assessment test result: PASSED
    

    Если результат не PASSED, то диск следует заменить.

  5. Расширенные встроенные тесты
    smartctl --test=long /dev/sda

    Пример:

    === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
    Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
    Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
    Testing has begun.
    Please wait 98 minutes for test to complete.
    Test will complete after Mon Mar  5 01:46:10 2018
    
    Use smartctl -X to abort test.
    

    Для просмотра результатов выполнения тестов используется команда вывода внутреннего журнала после завершения теста:

    smartctl -l selftest /dev/sda

    Для прерывания теста нужно ввести:

    smartctl -X

Источники: wiki.debian.org, wiki.enchtex.info, wiki.dieg.info

Оперативная память

Команда Описание
cat /proc/meminfo Информация об объеме RAM, SWAP и другая информация
free -m Общий объем памяти (RAM, SWAP), количество использованной, свободной памяти в МБайтах [1]
free -m -s 5 Вывод в других единицах — с ключами:-b байтах; -m мегабайтах; -g гигабайтах, -s запустить с заданным периодом обновления информации
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2} Расчет использования оперативной памяти
Очистка кэша памяти
free -h Посмотреть размер страничного кэша можно в последней колонке - cached
cat /proc/slabinfo | egrep dentry\|inode Просмотр кэша inode и dentrie, относящихся к файловой системе.
В него записываются не сами данные, а структура файловой системы, расположение файлов и папок.
sync; echo 1 > /proc/sys/vm/drop_caches Очистка кэша PageCache
sync; echo 2 > /proc/sys/vm/drop_caches Очистка inode и dentrie
sync; echo 3 > /proc/sys/vm/drop_caches Очистка inode и dentrie и PageCache

Примечание

Описание колонок в выводе команды free
total — общее количество памяти;
used — реально использующая в данный момент и зарезервированная системой память;
free — свободная память (total минус used);
shared — Shared memory или Разделяемая память, можно посмотреть командой ipcs;
buffers — буферы в памяти — страницы памяти, зарезервированные системой для выделения их процессам, когда они затребуют этого, так же известна как heap-memory;
cached — файлы, которые недавно были использованы системой/процессами и хранящиеся в памяти на случай если вскоре они снова потребуются.
Виды кэша
PageCache или страничный кэш - это место, куда ядро складывает все данные, которые были записаны или считаны из диска.
Кэш inode и dentrie тоже относится к файловой системе. Только в него записываются не сами данные, а структура файловой системы, расположение файлов и папок.

Тестирование оперативной памяти

Если Вы используете RescueLiveCD, то:

  • Для запуска Memtest86+ в меню syslinux вместо Rescue LiveCD выберите соответствующий пункт.

Если Вы используете установленную систему, то:

  • Для запуска Memtest86+ выберите соответствующий пункт в меню GRUB

Последующий процесс диагностики заключается в проведении нескольких этапов тестирования каждого отдельного модуля ОЗУ.

Данный процесс будет выполнятся бесконечно, пока вы не остановите его. Вам нужно дождаться окончания хотя бы одного цикла проверки. (значение Pass должно быть >= 1).

Memtest.png

В случае обнаружения ошибки отобразятся в списке.

Для ПК на UEFI в образе содержится memtest86.efi по соглашению с PassMark.

Что делать при появлении ошибок

Если при тестировании появляются ошибки, значит, оперативная память (устройство) битая/разогнанная/запылилась и ее надо заменить/согнать/пропылесосить (возможны также проблемы с охлаждением или системной шиной). В крайнем случае, возможно исключить битую память из использования в системе.

Ресурсы