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.
dmidecode
all'elenco dei modi che potrebbero mostrare se stai eseguendo virtualizzato, funziona bene con VMWare.
Le versioni correnti di lscpu
mostrano 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-name
identificatore fornisce la risposta prevista, anche in casi come VirtualBox
e VMWare
.