¿Hay alguna manera de averiguar si el sistema operativo (Linux) se está ejecutando dentro del invitado KVM ...
¿Hay alguna manera de averiguar si el sistema operativo (Linux) se está ejecutando dentro del invitado KVM ...
Respuestas:
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.
dmidecode
a la lista de formas que podrían mostrarse si está ejecutando virtualizado, funciona bien con VMWare.
Puede verificar si imvirt o virt-what, que están disponibles para varias distribuciones de Linux, incluido Ubuntu, pueden ayudarlo.
imvirt
es más precisa.
Las versiones actuales de lscpu
tambié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
...
systemd-detect-virt
vuelve en esta configuración de Ubuntu 18.04 KVM :
kvm
y en mi anfitrión:
none
Ver también: /unix/89714/easy-way-to-determine-virtualization-technology
Probado en un host Ubuntu 18.04.
Otra posibilidad es dmidecode -s 'system-product-name'
[samveen@vm1 ~]$ sudo dmidecode -s 'system-product-name'
KVM
Standard PC (i440FX + PIIX , 1996)
.
system-product-name
identificador da la respuesta esperada, incluso en casos como VirtualBox
y VMWare
.