dmidecode берёт информацию не через опрос устройств, а напрямую из таблиц DMI/SMBIOS, которые прошивка платы заполняет при старте и оставляет в памяти. Поэтому это не инвентаризация шин вроде lspci/lsusb — это то, что сама материнская плата знает о себе и о том, что в неё воткнуто, включая слоты, в которые ничего не вставлено.

Самый частый вызов — по типу записи через -t со словом-меткой вместо номера:

sudo dmidecode -t bios      # вендор, версия и дата BIOS/UEFI
sudo dmidecode -t system    # производитель, модель, серийник, UUID
sudo dmidecode -t memory    # все слоты: занятые — с объёмом и частотой, пустые — тоже видно

Нужен root — команда читает /dev/mem или /sys/firmware/dmi/tables, без прав обычного пользователя таблицы недоступны.

Если нужно не разбирать вывод, а сразу получить одно значение для скрипта — -s со строковой меткой:

sudo dmidecode -s system-serial-number
sudo dmidecode -s baseboard-product-name

Полный список допустимых меток — dmidecode --list-strings.

Важная оговорка: dmidecode честно показывает то, что записал в таблицы производитель прошивки, не более того. На виртуалках и части бюджетных плат вместо серийника или модели можно получить Not Specified или To Be Filled By O.E.M. — это не баг утилиты, а недоработка BIOS конкретного железа.

#linux #sysadmin #hardware