Pregunta:
Tengo acceso a la línea de comandos para una máquina Linux que puede o no estar virtualizada. Quiero determinar en qué tipo de tecnología de virtualización se ejecuta, si corresponde (VMWare, VirtualBox, KVM, OpenVZ, Xen). Este no es un entorno hostil: no estoy tratando de trabajar contra una máquina virtual que está tratando de disfrazarse, estoy diagnosticando un servidor defectuoso del que sé poco.
Más precisamente, estoy ayudando a alguien a diagnosticar el problema, no estoy sentado al timón. Así que tengo que transmitir instrucciones como "copiar y pegar este comando" y no "hurgar /proc
alguna parte". Idealmente, sería algo así como lshw
: un lshw
fácil instalación (si no está preinstalado) que busca e imprime información relevante.
¿Cuál es la forma más sencilla de determinar de qué tecnología de virtualización puede ser huésped este sistema? Agradecería que las propuestas mencionaran qué tecnologías (incluido el hardware básico) pueden detectarse de manera concluyente y cuáles pueden eliminarse de manera concluyente. Lo que más me interesa es Linux, pero si también funciona para otros sistemas, está bien.
Respuesta:
dmidecode -s system-product-name
He probado en Vmware Workstation, VirtualBox, QEMU con KVM, QEMU independiente con Ubuntu como sistema operativo invitado. Otros también han agregado plataformas adicionales con las que están familiarizados.
Tecnologías de virtualización
-
VMware Estación de trabajo
root@router:~# dmidecode -s system-product-name VMware Virtual Platform
-
VirtualBox
root@router:~# dmidecode -s system-product-name VirtualBox
-
Qemu con KVM
root@router:~# dmidecode -s system-product-name KVM
-
Qemu (emulado)
root@router:~# dmidecode -s system-product-name Bochs
-
Microsoft VirtualPC
root@router:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine
-
Virtuozzo
root@router:~# dmidecode /dev/mem: Permission denied
-
Xen
root@router:~# dmidecode | grep -i domU Product Name: HVM domU
En metal desnudo, devuelve una identificación del modelo de computadora o placa base.
/dev/disk/by-id
Si no tiene los derechos para ejecutar dmidecode
, puede usar:
Tecnología de virtualización: QEMU
ls -1 /dev/disk/by-id/
Producción
[root@host-7-129 ~]# ls -1 /dev/disk/by-id/
ata-QEMU_DVD-ROM_QM00003
ata-QEMU_HARDDISK_QM00001
ata-QEMU_HARDDISK_QM00001-part1
ata-QEMU_HARDDISK_QM00002
ata-QEMU_HARDDISK_QM00002-part1
scsi-SATA_QEMU_HARDDISK_QM00001
scsi-SATA_QEMU_HARDDISK_QM00001-part1
scsi-SATA_QEMU_HARDDISK_QM00002
scsi-SATA_QEMU_HARDDISK_QM00002-part1