lshw: как просмотреть аппаратное обеспечение в Linux
lshw — простой и мощный инструмент для вывода детальной информации об аппаратной части Linux-системы. В статье показано, как установить графическую часть, как безопасно запускать 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 → …).

Совет: 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

Примеры полезных классов:
- 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 для разных ролей и задач.
Резюме методики анализа аппаратуры:
- Сначала получить короткий список: sudo lshw -short
- Выделить интересующие классы: sudo lshw -class
- Применить парсинг (grep/sed/awk/jq для XML) для автоматических проверок
- Сравнить текущий снимок с эталонным (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'; fiDecision 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]Примеры тест-кейсов и критерии приёмки
Тест-кейсы:
- Проверка виртуальности: выполнить скрипт проверки VirtualBox на 3 гостевых ОС (VirtualBox, KVM, bare metal) и убедиться, что вывод корректен.
- Инвентаризация: собрать XML-отчёт с 10 хостов, распарсить и сопоставить ключевые поля (vendor, product, serial).
- 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.xmlXML легко распарсить с помощью стандартных средств (xmllint, Python ElementTree, lxml).
Можно ли доверять lshw без sudo?
Некоторые поля будут недоступны без привилегий root. Для полного и корректного отчёта рекомендуется запускать lshw под sudo.
lshw показывает неверные данные — что делать?
Проверьте, не работает ли система в режиме ограниченной виртуализации. Обновите пакет lshw и драйверы ядра, проверьте логи в /var/log и используйте 2>/dev/null для изоляции ошибок.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента