15

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

1

5 Answers 5

14

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.

3
  • kvm-clock clocksource might be not present or disabled for stability reasons. Oct 2, 2010 at 11:57
  • 2
    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, 2016 at 6:49
  • The first worked for me but the second shows the regular intel model name
    – MikeKulls
    Feb 1, 2023 at 23:10
11

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

1
  • 1
    In my experience imvirt is more accurate.
    – bahamat
    Sep 14, 2013 at 1:04
9
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.

7

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
...
2

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

[samveen@vm1 ~]$ sudo dmidecode -s 'system-product-name'
KVM
2
  • 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). Oct 4, 2018 at 15:05
  • 2
    @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, 2018 at 5:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .