Existe-t-il un moyen de savoir si le système d'exploitation (Linux) fonctionne à l'intérieur de l'invité KVM.
Existe-t-il un moyen de savoir si le système d'exploitation (Linux) fonctionne à l'intérieur de l'invité KVM.
Réponses:
Grep dmesg
, il devrait y avoir au moins une ligne contenant kvm
. Sur mes machines:
[ 0.000000] kvm-clock: cpu 0, msr 0:5dd801, boot clock
[ 0.000000] kvm-clock: cpu 0, msr 0:1023801, primary cpu clock
Vérifiez alternativement /proc/cpuinfo
, il contient une ligne:
model name : QEMU Virtual CPU version 0.9.1
Mais, le problème est: vous ne pouvez pas être sûr que vous êtes un invité KVM (en plus de QEMU) ou seulement un invité QEMU.
dmidecode
à la liste des façons qui pourraient apparaître si vous exécutez virtualisé, cela fonctionne bien avec VMWare.
Les versions actuelles de lscpu
montrent également si un hyperviseur est détecté:
# 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
revient sur cette configuration KVM Ubuntu 18.04 :
kvm
et sur mon hôte:
none
Voir également: /unix/89714/easy-way-to-determine-virtualization-technology
Testé sur un hôte Ubuntu 18.04.
Une autre possibilité est dmidecode -s 'system-product-name'
[samveen@vm1 ~]$ sudo dmidecode -s 'system-product-name'
KVM
Standard PC (i440FX + PIIX , 1996)
.
system-product-name
identifiant donne la réponse attendue, même dans les cas comme VirtualBox
et VMWare
.