Гид по технологиям

lshw: как просмотреть аппаратное обеспечение в Linux

• 7 min read • Linux • Обновлено 05 Dec 2025
lshw: как посмотреть оборудование в Linux
lshw: как посмотреть оборудование в Linux

lshw — простой и мощный инструмент для вывода детальной информации об аппаратной части Linux-системы. В статье показано, как установить графическую часть, как безопасно запускать lshw, как фильтровать по классам устройств, а также приведены примеры автоматических проверок, чеклисты и рекомендации по отладке.

Снимок экрана с общим обзором аппаратуры от lshw

Быстрая навигация

  • Что такое lshw
  • Установка lshw-gtk
  • Изучение lshw в терминале Linux
  • Использование класса устройства для выборочных запросов
  • Практические сценарии и автоматизация
  • Советы по отладке и безопасность
  • Краткое резюме и часто задаваемые вопросы

Что такое lshw

lshw — это утилита, которая собирает и выводит подробную информацию о аппаратном обеспечении вашей системы. Она доступна в основных дистрибутивах Linux и может выдавать как короткие, так и очень детальные отчёты. Название удобно запомнить как сочетание команд ls и hw: ls — список, hw — hardware.

Ключевые возможности в одной строке:

  • Сканирует DMI (x86/IA-64), дерево устройств OpenFirmware (PowerPC), PCI/AGP, CPUID (x86), IDE/ATA/ATAPI, PCMCIA, SCSI и USB
  • Поддерживает вывод в нескольких форматах (текст, HTML, XML)
  • Может работать в графическом интерфейсе через пакет lshw-gtk

Определение термина: DMI — интерфейс, через который система может сообщать данные о материнской плате и компонентах.

Важно: для полного вывода lshw обычно требует повышенных привилегий (root).

Установка lshw-gtk

Если вы предпочитаете графическую оболочку, установите lshw-gtk. Она не обязана для работы lshw, но удобна для пользователей, которые предпочитают GUI.

Для Debian/Ubuntu/Mint:

sudo apt install lshw-gtk

Для RHEL/CentOS/Fedora с yum:

sudo yum install lshw-gtk

Практические заметки по lshw-gtk:

  • Запускайте GUI с правами root, чтобы увидеть полную информацию:
sudo lshw-gtk
  • В графике нужно нажать кнопку Refresh, потому что при старте сканирование не всегда выполняется автоматически.
  • После сканирования дерево может отображаться компактно: раскройте узлы двойным щелчком (например: Desktop Computer → Motherboard → …).

Главное окно lshw-gtk после сканирования, с древовидным представлением оборудования

Совет: GUI полезен для быстрого обзора, но командная строка удобнее для автоматизации и интеграции в скрипты.

Изучение lshw в терминале Linux

Откройте терминал (обычно сочетание клавиш Windows Key + T или через меню системы). При запуске lshw без аргументов вы получите большой подробный вывод.

Совет по безопасности: всегда выполняйте lshw от имени root, чтобы избежать неполного отчёта:

sudo lshw

Короткий и читабельный формат выдачи:

sudo lshw -short

Пример комбинирования с другими утилитами оболочки:

sudo lshw -short | head -n6

Здесь мы попросили lshw выдать краткий список и ограничили вывод первыми 6 строками через head. Это распространённый приём для первичного анализа.

Что можно увидеть в выводе - примечательные поля:

  • Class — класс устройства (system, bus, memory, bridge, disk, network и т. п.)
  • Description — краткое описание устройства
  • Product/Vendor — модель и производитель (если доступны)
  • Serial/ID — серийные номера и идентификаторы

Формат Class удобен для выборки только нужных типов устройств — это мы разберём в следующем разделе.

Использование класса устройства для выборочных запросов

lshw поддерживает опцию -class (или -C), с помощью которой можно фильтровать вывод по классу устройств. Это полезно, если вы хотите получить только информацию о сетевых адаптерах, дисках или системе в целом.

Проверка, запущен ли хост в VirtualBox:

sudo lshw -short -C system

Если система виртуальная и lshw распознал VirtualBox, в выводе появится слово VirtualBox. Пример автоматической проверки в Bash:

if [ "$(sudo lshw -short -C system 2>/dev/null | grep -o 'VirtualBox')" == 'VirtualBox' ]; then
  echo 'We are using VirtualBox!'
else
  echo 'This is not a VirtualBox VM!'
fi

Пояснения:

  • 2>/dev/null перенаправляет поток ошибок в пустоту, чтобы он не мешал парсингу
  • grep -o выводит только совпавшую часть, что удобно для логических проверок
  • конструкция $(…) подставляет результат команды в if

Проверка через lshw, определение VirtualBox по полю system

Примеры полезных классов:

  • system — сведения о системе/платформе
  • memory — модули оперативной памяти
  • processor — процессоры и их параметры
  • network — сетевые интерфейсы
  • disk, volume — дисковые устройства и тома
  • display, multimedia — видео- и мультимедийные устройства

Пример: вывести все сетевые интерфейсы и их подробности:

sudo lshw -class network

Фильтрация по нескольким классам подряд через цикл:

for cls in system memory processor network disk; do
  echo "--- $cls ---"
  sudo lshw -class $cls | sed 's/^/  /'
done

Это даёт структурированный вывод, удобный для логирования и отправки в систему централизованного мониторинга.

Практические сценарии и автоматизация

Ниже собраны типовые сценарии использования lshw для разных ролей и задач.

Резюме методики анализа аппаратуры:

  1. Сначала получить короткий список: sudo lshw -short
  2. Выделить интересующие классы: sudo lshw -class
  3. Применить парсинг (grep/sed/awk/jq для XML) для автоматических проверок
  4. Сравнить текущий снимок с эталонным (diff) при инвентаризации

Сценарии:

  • Автоматическая проверка виртуальности (пример выше)
  • Сбор инвентаря для CMDB: сохранять вывод в XML через опцию -xml
sudo lshw -xml > host-hw.xml
  • Быстрая проверка наличия NVMe-диска:
sudo lshw -class disk | grep -i nvme
  • Формирование отчёта для техподдержки (текст или HTML):
sudo lshw -html > hw-report.html

Мини-методология для инвентаризации:

  • Шаг 1: собрать snapshot для каждого хоста в XML
  • Шаг 2: загрузить XML в парсер (Python/Ansible) и извлечь нужные поля
  • Шаг 3: записать в базу инвентаря и проверить отклонения от эталона

Советы для скриптов:

  • Всегда обрабатывайте stderr (иногда lshw печатает предупреждения)
  • Делайте нормализацию названий vendor/product перед заносом в БД
  • Учитывайте, что lshw может не видеть виртуальные устройства до установки гостевых добавлений

Чеклист по ролям

Системный администратор:

  • Запустить sudo lshw -short для быстрого аудита
  • Сохранять полные снимки в XML регулярно
  • Проверять изменения конфигурации через diff

Инженер поддержки:

  • Спросить пользователя предоставить вывод sudo lshw -short
  • Сравнить серийные номера и модели с документацией
  • Поискать в lshw информацию о контроллерах и дисках при проблемах ввода-вывода

Разработчик/DevOps:

  • Интегрировать сбор lshw в конфигурационные скрипты
  • Парсить XML-вывод для автоматической разметки узлов
  • Использовать lshw для подтверждения доступности аппаратных возможностей CI/CD агентов

Отладка и распространённые проблемы

Когда lshw выдаёт неполные данные:

  • Проверьте, запущен ли lshw с sudo. Без root-прав часть информации может быть скрыта.
  • Виртуализованные платформы могут сокрывать реальные данные аппаратуры; проверьте настройки гипервизора.
  • Старые или экзотические аппаратные платформы могут не поддержаться полностью.

Если lshw падает или выдаёт ошибки:

  • Перенаправьте stderr в файл и проанализируйте сообщения:
sudo lshw 2>lshw.err >lshw.out
  • Попробуйте обновить пакет lshw в вашем дистрибутиве — иногда исправления драйверов/поддержки добавляются в новых версиях.

Безопасность и привилегии:

  • lshw не модифицирует систему; это утилита только для чтения.
  • Однако запуск GUI с root остаётся риском: избегайте запуска ненадёжных приложений в окружении с повышенными правами.
  • Логи и экспортированные XML/HTML могут содержать серийные номера и уникальные идентификаторы — не публикуйте их в открытых репозиториях.

Соображения о конфиденциальности:

  • При отправке отчётов в службу поддержки удалите серийники и MAC-адреса, если это не требуется для диагностики.

Быстрый справочник по командам lshw (cheat sheet)

  • Короткий обзор:
sudo lshw -short
  • Подробный вывод:
sudo lshw
  • Вывести в HTML:
sudo lshw -html > report.html
  • Вывести в XML:
sudo lshw -xml > report.xml
  • Фильтрация по классу:
sudo lshw -class network
  • Комбинация с grep и проверка в скриптах:
if [ "$(sudo lshw -short -C system 2>/dev/null | grep -o 'VirtualBox')" == 'VirtualBox' ]; then echo 'VirtualBox'; fi

Decision flow для быстрого выбора команды

flowchart TD
  A[Нужно быстрое резюме?] -->|Да| B[sudo lshw -short]
  A -->|Нет, нужно всё| C[sudo lshw]
  B --> D{Нужен экспорт?}
  C --> D
  D -->|HTML| E[sudo lshw -html > report.html]
  D -->|XML| F[sudo lshw -xml > report.xml]
  D -->|Нет| G[Используйте парсинг командой grep/awk]

Примеры тест-кейсов и критерии приёмки

Тест-кейсы:

  1. Проверка виртуальности: выполнить скрипт проверки VirtualBox на 3 гостевых ОС (VirtualBox, KVM, bare metal) и убедиться, что вывод корректен.
  2. Инвентаризация: собрать XML-отчёт с 10 хостов, распарсить и сопоставить ключевые поля (vendor, product, serial).
  3. GUI: установить lshw-gtk, запустить, убедиться, что сканирование выполняется после нажатия Refresh.

Критерии приёмки:

  • lshw при запуске от root не должен пропускать классы system и memory.
  • Скрипт проверки виртуальности должен возвращать ‘We are using VirtualBox!’ только на хосте VirtualBox.
  • Экспорт в XML/HTML должен открываться и содержать разделы network, disk, processor.

Когда lshw может не подойти

  • Если вам нужны real-time метрики (температура, загрузка) — lshw не предназначен для мониторинга, используйте lm-sensors, iostat, collectd или Prometheus.
  • Для глубокого анализа SMART-дисков используйте smartctl.
  • Для управления RAID контроллером используйте утилиты производителя RAID.

Заключение

lshw — простой, надёжный и гибкий инструмент для быстрого аудита аппаратного обеспечения. Он удобен как для ручного обзора через lshw-gtk, так и для автоматизации через терминал. Используйте фильтрацию по классам для точечных запросов и экспортируйте результаты в XML/HTML для интеграции с системами управления конфигурацией.

Краткое резюме:

  • Всегда запускайте lshw с sudo для полного доступа
  • Для автоматизации экспортируйте в XML и парсите
  • Используйте -class для выборочных запросов

Если вы хотите продолжить, посмотрите статью How to Use strace to Trace System Calls and Signals.

Часто задаваемые вопросы

Как получить вывод в формате, пригодном для парсинга?

Сохраните вывод в XML:

sudo lshw -xml > host-hw.xml

XML легко распарсить с помощью стандартных средств (xmllint, Python ElementTree, lxml).

Можно ли доверять lshw без sudo?

Некоторые поля будут недоступны без привилегий root. Для полного и корректного отчёта рекомендуется запускать lshw под sudo.

lshw показывает неверные данные — что делать?

Проверьте, не работает ли система в режиме ограниченной виртуализации. Обновите пакет lshw и драйверы ядра, проверьте логи в /var/log и используйте 2>/dev/null для изоляции ошибок.


Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро