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.

1 comentario en “Comprobando el hardware de un servidor Linux sin abrirlo: dmidecode (II)

  1. Se me olvidaba comentar que una de las mayores utilidades de dmidecode es descubrir los límites de los recursos hardware de un sistema. El ejemplo que utilicé para justificar esta serie de artículos, la renovación de la RAM de un servidor en producción, me viene muy bien para ilustrar esta posibilidad.

    El tipo 16 nos informa del máximo de memoria que un sistema soporta, mientras que el 17 nos habla de la RAM ya instalada: tamaño, tipo, bancos ocupados, etc. Por ejemplo:

    # dmidecode --type 16,17
    SMBIOS 2.4 present.

    Handle 0x1000, DMI type 16, 15 bytes
    Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 4 GB
    Error Information Handle: Not Provided
    Number Of Devices: 2

    Handle 0x1100, DMI type 17, 27 bytes
    Memory Device
    Array Handle: 0x1000
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 1024 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM_A
    Bank Locator: Not Specified
    Type: DDR
    Type Detail: Synchronous
    Speed: 667 MHz
    Manufacturer: 7F7F7F0B00000000
    Serial Number: 9306AC15
    Asset Tag: 000746
    Part Number: NT1GT64U8HB0BN-3C

    Handle 0x1101, DMI type 17, 27 bytes
    Memory Device
    Array Handle: 0x1000
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 2048 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM_B
    Bank Locator: Not Specified
    Type: DDR
    Type Detail: Synchronous
    Speed: 667 MHz
    Manufacturer: 7F98000000000000
    Serial Number: B712B00B
    Asset Tag: 000B31
    Part Number:

Los comentarios están cerrados.