如何确定是否在 KVM 来宾内部运行

suy*_*tar 12 kvm-virtualization

有没有办法找出操作系统(linux)是否在 KVM 来宾中运行..

the*_*ega 11

Grep dmesg,应该至少有一行包含kvm. 在我的机器上:

[    0.000000] kvm-clock: cpu 0, msr 0:5dd801, boot clock
[    0.000000] kvm-clock: cpu 0, msr 0:1023801, primary cpu clock
Run Code Online (Sandbox Code Playgroud)

或者检查/proc/cpuinfo,它包含一行:

model name : QEMU Virtual CPU version 0.9.1
Run Code Online (Sandbox Code Playgroud)

但是,问题是:您不能确定自己是 KVM 来宾(在 QEMU 之上)还是只是 QEMU 来宾。

  • 如果您正在运行虚拟化,您可能希望将 `dmidecode` 添加到可能显示的方式列表中,它可以很好地与 VMWare 配合使用。 (2认同)

Not*_*Now 10

您可以检查适用于多个 Linux 发行版(包括 Ubuntu)的imvirtvirt-what是否可以帮助您。


小智 7

当前版本lscpu还显示是否检测到虚拟机管理程序:

# 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
...
Run Code Online (Sandbox Code Playgroud)