C'è un modo per scoprire se il sistema operativo (linux) è in esecuzione all'interno del guest KVM.
C'è un modo per scoprire se il sistema operativo (linux) è in esecuzione all'interno del guest KVM.
Risposte:
Grep dmesg, dovrebbe esserci almeno una riga contenente kvm. Sulle mie macchine:
[ 0.000000] kvm-clock: cpu 0, msr 0:5dd801, boot clock
[ 0.000000] kvm-clock: cpu 0, msr 0:1023801, primary cpu clock
Controlla alternativamente /proc/cpuinfo, contiene una riga:
model name : QEMU Virtual CPU version 0.9.1
Ma il problema è: non puoi essere sicuro di essere un ospite KVM (in cima a QEMU) o solo un ospite QEMU.
dmidecodeall'elenco dei modi che potrebbero mostrare se stai eseguendo virtualizzato, funziona bene con VMWare.
Le versioni correnti di lscpumostrano anche se viene rilevato un hypervisor:
# 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
ritorna su questa installazione di Ubuntu 18.04 KVM :
kvm
e sul mio host:
none
Vedi anche: /unix/89714/easy-way-to-determine-virtualization-technology
Testato su un host Ubuntu 18.04.
Un'altra possibilità è dmidecode -s 'system-product-name'
[samveen@vm1 ~]$ sudo dmidecode -s 'system-product-name'
KVM
Standard PC (i440FX + PIIX , 1996).
system-product-nameidentificatore fornisce la risposta prevista, anche in casi come VirtualBoxe VMWare.