Saltar al contenido

Comprobar si un servidor Linux es virtual o físico

En ocasiones nos resulta inevitable conocer si un servidor es físico (es decir, una torre o rack) o bien si es virtual (una máquina virtual) para aplicar configuraciones sobre él o realizar un inventariado de equipos.

Tal ha sido el caso conmigo en más de una ocasión, mi curiosidad me ha llevado a investigar no una o dos sino todas las opciones que he podido encontrar para poder obtener tan valiosa información, así que sin más demora vamos a enumerar las opciones.

Como saber si un servidor Linux es virtual o físico

Estos comandos te permitirán saber si un servidor Linux o UNIX es físico o virtualizado, tanto de forma remota como desde un terminal local. Estos comandos son interesantes porque la mayoría no requieren de instalar paquete alguno.

Veamos algunos comandos con sus salidas explicadas.

dmidecode

Podemos usar alguna de las siguientes variantes, entre otras:

dmidecode -t system
dmidecode -s system-manufacturer
dmidecode | egrep -i 'manufacturer|product'

Usando una máquina virtual obtendremos lo siguiente:

SI se trata de un servidor físico, en manufacturer obtendremos el fabricante el equipo (por ejemplo, Dell o HP) y en product name el nombre comercial del servidor, por ejemplo ProLiant.

dmesg

La utilidad dmesg es descrita como un examinador/controlador del bufer del anillo del kernel de Linux. Es interesante por sí misma para auditar algunos aspectos importantes del sistema.

En este caso recomiendo las sintaxis:

dmesg | grep "Hypervisor detected"
dmesg | grep DMI

En una máquina virtual obtendremos algo similar a esto:

En un sistema físico no obtendremos salida para el primer comando, mientras que en el segundo aparecerán detalles sobre la placa base y revisión de BIOS del servidor, así como el nombre del equipo.

lshw

De la misma forma que ls nos permite listar directorios, lshw nos permite listar detalles del hardware de un equipo basado en Linux. Este utilitario podría no estar presente en algunos sistemas.

Sintaxis recomendadas:

lshw -c system
lshw -c system | grep product

En una máquina virtual obtendremos algo similar a esto:

En un sistema físico obtendremos detalles del hardware como en casos anteriores. La diferencia normalmente se ve a simple vista.

hwinfo

Esta utilidad para verificar hardware es bastante completa aunque no siempre estará disponible y en entornos de producción de una empresa no podemos estar instalando paquetes, pero lo dejo como referencia.

Instalación:

sudo apt install hwinfo

Sintaxis recomendadas:

hwinfo --all
hwinfo --all --log ~/hwinfo.txt    #(salida a fichero de texto)

Una vez tengamos el fichero de texto lo filtramos según BIOS, System info o Chassis info.

systemd-detect-virtual

Esta utilidad nos permite introducir una sencilla orden y obtener información sobre contenedores o máquinas virtuales presentes en el sistema. Solo tenemos que escribir, según el sistema, la siguiente sintaxis:

systemd-detect-virtual
systemd-detect-virt

En un equipo virtualizado obtendremos lo siguiente:

Archivos de sistema en /sys/class/dmi/id

En el propio sistema de archivos podemos determinar si el equipo es fisico o virtual revisando estos ficheros.

cat /sys/class/dmi/id/product_name
cat /sys/class/dmi/id/chassis_vendor

En un sistema virtualizado obtendremos lo siguiente.

Eso es todo por hoy, espero que estos comandos os resulten útiles y ya sabéis, si tenéis alguno más en la manga compartidlos con el resto 🙂

Alejandro Ver todo

Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.

2 comentarios sobre “Comprobar si un servidor Linux es virtual o físico Deja un comentario

  1. Lo bueno de tus artículos es que no te conformas con dar una posibilidad o dos de solventar una acción (como hacen muchos blogs), sino que das un abanico importante de ellas.

    Muchas gracias por la info.

    Le gusta a 1 persona

Deja tu comentario (puedes hacerlo de forma anónima)

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.