Una pregunta interesante He iniciado sesión en un host Linux (probablemente SuSE). ¿Hay alguna forma en que pueda decir programáticamente que soy un host VM o no?
También suponga que las vmtools no están instaladas.
linux
virtualization
mdpc
fuente
fuente
Respuestas:
Utilice herramientas estándar de Linux para inspeccionar el hardware del sistema.
o
o
Si la salida de estos comandos muestra hardware con un nombre de fabricante de "VMWare", está en una VM VMWare. Aquí se proporcionan varios comandos porque las configuraciones y herramientas del sistema son diferentes.
fuente
cat /proc/scsi/scsi
es bueno porque parece estar disponible en todas partes y no requiere instalar un nuevo software o ejecutarse con derechos privilegiados./proc/scsi/scsi
en mi caja de Debian 7 ...man virt-what
el script heurístico creado para este propósito de detección (para los sistemas RedHat / Fedora) y las advertencias involucradas.indica que es una VM. Si devuelve "físico", entonces lo contrario es cierto (no una VM), por ejemplo:
fuente
Hay una aplicación práctica que podría ayudar llamada virt-what . No lo he usado con VMWare, pero funcionó muy bien con Qemu.
fuente
Es posible que pueda obtener una idea mirando a su alrededor
/sys
. Por ejemplo/sys/class/dmi/id/sys_vendor
tiene un valor deVMware, Inc.
.Si está instalado, puede usar lshw . El comando
lshw -class system
devuelve esto en mi sistema:fuente
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 "Adaptador de pantalla VirtualBox". Pero buscar esos vínculos lo vincula a una VM 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 usted podría estar fácilmente en una caja que no tiene hardware compatible con VM.
fuente
Para Linux, escriba
dmesg |grep DMI
:SALIDA VIRTUAL
POR EJEMPLO DE ANFITRIÓN FÍSICA
fuente
Hay mucho código para detectar si estás en una máquina virtual o no. Comience con la píldora roja y busque desde allí. Este artículo en Offensive Computing también es una buena lectura.
Eso es si ninguno de los fáciles anteriores funciona :)
fuente
También puede buscar la primera parte de su dirección de Mac aquí y ver si aparece como asignada a alguna de las empresas de virtualización.
fuente
Los dispositivos virtuales también serán revelados por lspci y / o la información del dispositivo de disco en / proc:
fuente
En Linux, la información del sistema se revela en / sys / devices / virtual / dmi / id /. Vea mi respuesta aquí para obtener un script útil para mostrarle toda la información disponible.
raíz no requerida.
fuente
No me gustó ninguna de estas soluciones, ya que generalmente hay un controlador VMware CDROM o un controlador de memoria instalado, por lo que dmesg me lo confirma o me lo niega rápidamente.
fuente
Esto funcionó mejor para mí, ya que me da información específica sobre el fabricante y el nombre del producto.
Salida en el servidor Dell:
Salida en Virtualbox VM:
Salida en KVM / QEMU:
Esto es ideal para los scripts que pueden analizarlos para una mejor identificación de los servidores ... pero si usa Chef en su infraestructura, puede verificar el atributo de nodo
Virtualization -> system
en el servidor de chef.fuente
Me gusta mucho:
o concreto:
Cómo verificar si un sistema Linux es una máquina física o virtual
16 métodos para verificar si un sistema Linux es una máquina física o virtual
fuente