Tengo acceso de línea de comando a 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 VM que está tratando de disfrazarse, estoy diagnosticando un servidor inestable del que sé poco.
Más precisamente, estoy ayudando a alguien a diagnosticar el problema, no estoy sentado al mando. Así que tengo que transmitir instrucciones como "copiar y pegar este comando" y no "hurgar en /proc
en algún lugar". Idealmente, sería algo como lshw
:un comando fácil de instalar (si no está preinstalado) que hurga e imprime información relevante.
¿Cuál es la forma más fácil 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) se pueden detectar de manera concluyente y cuáles se pueden eliminar de manera concluyente. Lo que más me interesa es Linux, pero si también funciona para otros unice, está bien.
Respuesta aceptada:
dmidecode -s system-product-name
He probado en Vmware Workstation, VirtualBox, QEMU con KVM, QEMU independiente con Ubuntu como sistema operativo invitado. Otros han agregado plataformas adicionales con las que también están familiarizados.
Tecnologías de virtualización
-
Estación de trabajo VMware
[email protected]:~# dmidecode -s system-product-name VMware Virtual Platform
-
Caja virtual
[email protected]:~# dmidecode -s system-product-name VirtualBox
-
Qemu con KVM
[email protected]:~# dmidecode -s system-product-name KVM
-
Qemu (emulado)
[email protected]:~# dmidecode -s system-product-name Bochs
-
PC virtual de Microsoft
[email protected]:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine
-
Virtuoso
[email protected]:~# dmidecode /dev/mem: Permission denied
-
Xen
[email protected]:~# dmidecode | grep -i domU Product Name: HVM domU
En bare metal, esto devuelve una identificación de la computadora o el modelo de placa base.
/dev/disk/by-id
Si no tiene los derechos para ejecutar dmidecode
entonces puedes usar:
Tecnología de virtualización:QEMU
ls -1 /dev/disk/by-id/
Salida
[[email protected] ~]# 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
Referencias
- Cómo detectar la virtualización en dmo.ca