Solución 1:
Utilice herramientas estándar de Linux para inspeccionar el hardware del sistema.
cat /proc/scsi/scsi
o
ethtool -i eth0
o
dmidecode | grep -i vmware
Si el resultado de estos comandos muestra hardware con un nombre de fabricante de "VMWare", está en una VM de VMWare. Aquí se proporcionan varios comandos porque las configuraciones del sistema y las herramientas difieren.
Solución 2:
facter virtual
xenu
indica que es una máquina virtual. Si devolvió "físico", entonces es todo lo contrario (no una VM), por ejemplo:
facter virtual
Physical
Solución 3:
Es posible que pueda obtener una idea mirando debajo de /sys
. Por ejemplo /sys/class/dmi/id/sys_vendor
tiene un valor de VMware, Inc.
.
Si está instalado, puede usar lshw . El comando lshw -class system
devuelve esto en mi sistema:
server1
description: Computer
product: VMware Virtual Platform
vendor: VMware, Inc.
version: None
serial: VMware-...
width: 64 bits
capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
Solución 4:
Hay una aplicación útil que podría ayudar llamada virt-what . No lo he usado con VMWare, pero funcionó muy bien con Qemu.
Solución 5:
Algunos entornos virtuales nombran algunos de sus dispositivos virtuales con nombres que son un poco reveladores, por ejemplo, VirtualBox presenta una tarjeta gráfica que se llama a sí misma "VirtualBox Display Adapter". Pero buscarlos lo vincula a una máquina virtual en particular y posiblemente a una gama limitada de versiones.
Es posible que su código vea qué tipo de virtualización podría configurar. Si eso falla por completo, es posible que esté en una máquina virtual. Pero podría estar fácilmente en una caja que no tiene ningún hardware compatible con VM.