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 lscpumontrent é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-nameidentifiant donne la réponse attendue, même dans les cas comme VirtualBoxet VMWare.