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
