8

Is there a way to find out if OS(linux) is running inside KVM guest..

9

Grep dmesg, there should be at least one line containing kvm. On my machines:

[    0.000000] kvm-clock: cpu 0, msr 0:5dd801, boot clock
[    0.000000] kvm-clock: cpu 0, msr 0:1023801, primary cpu clock

Alternativly check /proc/cpuinfo, it contains a line:

model name : QEMU Virtual CPU version 0.9.1

But, the problem is: You can't be sure you are an KVM guest (on top of QEMU) or only a QEMU-Guest.

  • kvm-clock clocksource might be not present or disabled for stability reasons. – sendmoreinfo Oct 2 '10 at 11:57
  • 1
    You may want to add dmidecode to the list of ways that might show if you are running virtualized, it works well with VMWare. – Law29 Apr 3 '16 at 6:49
6

You can check if imvirt or virt-what which are available for several Linux distros, including Ubuntu, can help you.

  • 1
    In my experience imvirt is more accurate. – bahamat Sep 14 '13 at 1:04
2

Current versions of lscpu also show if a hypervisor is detected:

# 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
...
0

Another possibility is dmidecode -s 'system-product-name'

[samveen@vm1 ~]$ sudo dmidecode -s 'system-product-name'
KVM
  • Did not work with this Ubuntu 18.04 on Ubuntu 18.04 setup: askubuntu.com/revisions/1046792/15 , it just output: Standard PC (i440FX + PIIX , 1996). – Ciro Santilli 新疆改造中心法轮功六四事件 Oct 4 '18 at 15:05
  • 1
    @CiroSantilli新疆改造中心六四事件法轮功 Please check the other DMI information fields as well. I dont have access to an Ubuntu based KVM host to test. In most cases, thesystem-product-name identifier gives the expected answer, even in cases like VirtualBox and VMWare. – Samveen Oct 12 '18 at 5:34
0
systemd-detect-virt

returns on this Ubuntu 18.04 KVM setup:

kvm

and on my host:

none

See also: https://unix.stackexchange.com/questions/89714/easy-way-to-determine-virtualization-technology

Tested on an Ubuntu 18.04 host.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.