Comprobando el hardware de un servidor Linux sin abrirlo: dmidecode (II)

La segunda herramienta que nos va a permitir conocer la configuración del hardware de un sistema en producción sin tener que pararlo ni abrirlo es dmidecode. Al igual que hwinfo, se trata de una utilidad de línea de comandos. Sin embargo, en vez de sondear el hardware, dmidecode analiza la información almacenada en la BIOS en las tablas DMI y la muestra en pantalla.

Para instalar dmidecode en un sistema Debian, basta con seguir el procedimiento habitual:

# apt-get install dmidecode

La forma de utilizar dmidecode es muy sencilla y similar a la de hwinfo, es decir, invocamos el comando junto con un argumento que nos permitirá obtener la información concreta deseada. Evidentemente, si ejecutamos dmidecode sin argumentos, obtendremos toda la información disponible:

# dmidecode
SMBIOS 2.7 present.
109 structures occupying 3956 bytes.
Table at 0x000EB6C0.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
        Vendor: American Megatrends Inc.
        Version: 0915
        Release Date: 07/27/2012
        Address: 0xF0000
        Runtime Size: 64 kB
        ROM Size: 8192 kB
        Characteristics:
                PCI is supported
                BIOS is upgradeable
...

dmidecode tiene dos parámetros para seleccionar la información a mostrar, --string y --type. El primero obtiene el valor de la cadena DMI indicado por la palabra clave que hay especificar. Por ejemplo, para conocer la marca del procesador:

# dmidecode --string processor-manufacturer
Intel

Al contrario que hwinfo, sólo podemos utilizar un valor a la vez. La lista de palabras clave admitidas se puede consultar en el manual electrónico de dmidecode:

# man dmidecode

El parámetro --type muestra las entradas en la BIOS del tipo que especifiquemos, donde el tipo es o bien un número (pudiendo indicar más de uno separados por comas) o bien una palabra clave (de una lista que es distinta a la utilizada por --string). Por ejemplo, para conocer información sobre el sistema y la placa base:

# dmidecode --type 1,2
SMBIOS 2.7 present.

Handle 0x0001, DMI type 1, 27 bytes
System Information
        Manufacturer: System manufacturer
        Product Name: System Product Name
        Version: System Version
        Serial Number: System Serial Number
        UUID: XXX
        Wake-up Type: Power Switch
        SKU Number: SKU

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: ASUSTeK COMPUTER INC.
        Product Name: P8H77-M PRO
        Version: Rev X.0x
        Serial Number: XXX
        Features:
                Board is a hosting board
                Board is replaceable
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0

Y para saber más sobre el chasis del servidor:

# dmidecode --type chassis
SMBIOS 2.7 present.

Handle 0x0003, DMI type 3, 22 bytes
Chassis Information
        Manufacturer: Chassis Manufacture
        Type: Desktop
        Lock: Not Present
        Version: Chassis Version
        Serial Number: Chassis Serial Number
        Asset Tag: Asset-1234567890
        Boot-up State: Safe
        Power Supply State: Safe
        Thermal State: Safe
        Security Status: None
        OEM Information: 0x00000000
        Height: Unspecified
        Number Of Power Cords: 1
        Contained Elements: 0

Al igual que antes, la lista de tipos numéricos y palabras clave admitidas se puede consultar en el manual electrónico de dmidecode.

Como curiosidad, el paquete dmidecode incluye otras herramientas, destacando biosdecode, que analiza la memoria de la BIOS y muestra las estructuras de las que tiene conocimiento.

Para terminar dos advertencias. La primera es que dmidecode sólo muestra lo que la BIOS conoce, por lo que si se trata de un sistema de esos en los que la BIOS es muy espartana, es posible que no obtengamos todo lo que queremos conocer (típico de un sistema de marca). La segunda es que hay que tener cuidado al utilizarlo en un sistema en producción (aunque este sea su objetivo). Todo lo que suponga sondear el hardware está sujeto a una probabilidad (mínima) de provocar problemas en la plataforma y su caída.

Contenidos bajo licencia CC BY-NC-SA 4.0