Tengo un servidor VMWARE ESX. Tengo VM de Redhat ejecutándose en ese servidor. Necesito una forma de probar programáticamente si estoy ejecutando en una máquina virtual. Idealmente, me gustaría saber cómo hacer esto desde Perl.¿Cómo puedo saber si estoy corriendo en una máquina virtual VMWARE (desde Linux)?
Respuesta
Ver la respuesta a "Detect virtualized OS from an application?".
VMWare tiene un par de SDK, incluido un SDK for Perl.
Creo que (dependiendo de la versión de esx) puede inspeccionar en la dirección MAC de la NIC. Las VM que se ejecutan en VMWare NIC tendrán una cadena de fabricante asignada a VMWare, no el NIC MAC físico. (Estábamos intentando suplantar el MAC a VM como servidor de licencias y las versiones más nuevas no nos permitirán hacerlo). Además, esto no garantizará que no esté ejecutándose en una caja física con una NIC falsificada para que parezca VMWare, pero de todos modos eso sería algo extraño de hacer en la mayoría de las circunstancias.
No debe depender al 100% de ningún método, ya que son características/errores no documentados; funcionan en algunos sistemas operativos anfitriones y algunas soluciones de virtualización, pero no hay garantía de que continúen funcionando; de hecho, el objetivo de la virtualización es ser tan indistinguible del metal real como sea posible. Con esto en mente, el (que se menciona en la respuesta aceptada al this similar question) parece funcionar ... por ahora.
Ejecutar el siguiente comando:
lspci | grep VMware
Se debería mostrar algo como esto: Adaptador de VMware SVGA II
00::
00: 0f.0 VGA compatible controller 11,0 PCI bridge: Puente VMware PCI (rev 02)
00: 15.0 Puente PCI: VMware PCI Express Root Port (rev 01)
- 1. ¿Cómo se clona una máquina virtual utilizando VMware Fusion?
- 2. En Linux, ¿cómo puedo saber si estoy enlazando a una biblioteca estática o dinámica?
- 3. ¿Cómo detectar si estoy corriendo en un servicio único?
- 4. ¿Cómo puedo saber si estoy en el depurador en Android?
- 5. ¿Cómo puedo saber si estoy antes de guardar desde una edición o una creación? CakePHP
- 6. ¿Cómo puedo saber si estoy huyendo de JRuby vs. Ruby?
- 7. ¿Cómo puedo ejecutar una aplicación OpenGL instalada en una máquina Linux desde mi máquina Windows?
- 8. ¿La máquina virtual Java es realmente una máquina virtual en el mismo sentido que mi archivo VMWare o Parallels?
- 9. Cygwin vs Linux ¿Máquina virtual para desarrollo?
- 10. ¿Cómo funciona una máquina virtual?
- 11. ¿Cómo saber si estoy en una devolución de datos?
- 12. Cómo conectarse desde una máquina de invitado de VMware al servidor instalado en una máquina de host de Windows 7?
- 13. ¿Cómo puedo usar el escritorio remoto para una máquina con Windows desde una máquina con Linux?
- 14. ¿Cómo elimino una máquina virtual VMware que no va a morir?
- 15. MAMP/LAMP nativo o virtual (Virtualbox/VMware)?
- 16. ¿Cómo puedo saber en qué subrutina estoy?
- 17. ¿Cómo identificar que se está ejecutando en una máquina virtual?
- 18. Determine cuándo se ejecuta en una máquina virtual
- 19. Cómo escribir una máquina virtual
- 20. ¿Cómo puedo saber si estoy en una pila de excepción de Delphi?
- 21. programa cuda en VMware
- 22. Única máquina virtual
- 23. ¿Necesita saber cómo instalar gdb en la máquina de Linux
- 24. ¿Bajo qué contexto estoy corriendo en C#?
- 25. ¿Cómo saber qué distribución de Linux estoy usando?
- 26. de código abierto máquina virtual
- 27. ¿Cómo puedo saber cuándo se tomó una foto en C# corriendo en Vista?
- 28. ¿Cómo puedo saber qué versión de Cassandra estoy ejecutando?
- 29. ¿Qué distribución de Linux es mejor para desarrollar una aplicación Mono en una máquina virtual?
- 30. ¿Se puede ejecutar una imagen de VMWare Fusion en una máquina con Windows?
Virtualbox te permite ingresar cualquier MAC que quieras –
@mgb bastante, pero OP preguntaba por VMware ESX .. – saschabeaumont
Supongo que puedes cambiarlo en ESX. Es una característica muy útil si intenta ejecutar aplicaciones con licencia en una VM –