cómo averiguar si se ejecuta dentro de un invitado KVM

Respuestas:

11

Grep dmesg, debe haber al menos una línea que contenga kvm. En mis maquinas:

[    0.000000] kvm-clock: cpu 0, msr 0:5dd801, boot clock
[    0.000000] kvm-clock: cpu 0, msr 0:1023801, primary cpu clock

Alternativamente verifique /proc/cpuinfo, contiene una línea:

model name : QEMU Virtual CPU version 0.9.1

Pero el problema es: no puede estar seguro de que es un invitado KVM (además de QEMU) o solo un invitado QEMU.

theomega
fuente
La fuente de reloj kvm-clock puede no estar presente o desactivada por razones de estabilidad.
sendmoreinfo
2
Es posible que desee agregar dmidecodea la lista de formas que podrían mostrarse si está ejecutando virtualizado, funciona bien con VMWare.
Ley29
7

Puede verificar si imvirt o virt-what, que están disponibles para varias distribuciones de Linux, incluido Ubuntu, pueden ayudarlo.

Ahora no
fuente
1
En mi experiencia imvirtes más precisa.
bahamat
3

Las versiones actuales de lscputambién muestran si se detecta un hipervisor:

# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Model name:            Intel Core 2 Duo P9xxx (Penryn Class Core 2)
Stepping:              3
CPU MHz:               2659.936
BogoMIPS:              5319.87
Hypervisor vendor:     KVM
Virtualization type:   full
...
Gargravarr
fuente
0

Otra posibilidad es dmidecode -s 'system-product-name'

[samveen@vm1 ~]$ sudo dmidecode -s 'system-product-name'
KVM
Samveen
fuente
No trabajó con este Ubuntu 18.04 en Ubuntu 18.04 configuración: askubuntu.com/revisions/1046792/15 , sólo de salida: Standard PC (i440FX + PIIX , 1996).
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
1
@CiroSantilli 新疆 改造 中心 六四 事件 法轮功 Compruebe también los otros campos de información de DMI. No tengo acceso a un host KVM basado en Ubuntu para probar. En la mayoría de los casos, el system-product-nameidentificador da la respuesta esperada, incluso en casos como VirtualBoxy VMWare.
Samveen