我希望能够从 Windows 和 Linux 执行此操作。我知道有一些方法可以获取 sysinfo 并使用与硬件标识符相关的经验法则。
我想知道是否有更基本的方法,比如查看内存地址/发出中断等。
顺便说一句,我正在尝试在 Intel 硬件上执行此操作,我使用的虚拟化软件是 Vmware Workstation 和 Windows HyperV。
最佳答案
这是一个更有用的命令:
$ lscpu | grep -E 'Hypervisor vendor|Virtualization type'
Hypervisor vendor: KVM
Virtualization type: full
其他命令的示例输出:
$ sudo virt-what
kvm
$ dmesg | grep -i virtual
[ 0.000000] Booting paravirtualized kernel on KVM
[ 0.029160] CPU0: Intel QEMU Virtual CPU version 1.0 stepping 03
$ sudo dmidecode | egrep -i 'manufacturer|product|vendor|domU'
Vendor: Bochs
Manufacturer: Bochs
Product Name: Bochs
Manufacturer: Bochs
Manufacturer: Bochs
Manufacturer: Bochs
Manufacturer: Bochs
Manufacturer: Bochs
Manufacturer: Bochs
Manufacturer: Bochs
Manufacturer: Bochs
Manufacturer: Bochs
关于linux - 我如何以编程方式知道我是否在虚拟机中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15374154/