查明操作系统是否在虚拟环境中运行

查明操作系统是否在虚拟环境中运行

有什么方法可以查明我正在运行(实际安装)的操作系统是否在 VMWare 计算机中运行。如果在虚拟机上完成自动安装,我需要禁用ntp设置,但如果在裸机上安装,则保持启用它们。

答案1

如果内核检测到某种虚拟机管理程序正在运行,Linux 就会添加该hypervisor标志。/proc/cpuinfo

答案2

在 Linux 上你可以使用命令virt-what

[root@myhost]# virt-what
vmware

Windows 上 Linux 的示例输出超V

[root@linuxvm11~] # virt-what
hyperv

centos8 的示例输出虚拟机

CentOS:root@box003:~/CM/bin/tools# virt-what
vmware

答案3

这对我来说效果更好,因为它为我提供了有关制造商和产品名称的具体信息。

dmidecode -t system|grep 'Manufacturer\|Product'

戴尔服务器上的输出:

Manufacturer: Dell Inc.
Product Name: PowerEdge C5220

Virtualbox 虚拟机上的输出:

Manufacturer: innotek GmbH
Product Name: VirtualBox

KVM/QEMU 上的输出:

Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)

这对于可以解析这些内容以便更好地识别服务器的脚本来说非常有用...但是如果您在基础设施中使用 Chef,则可以检查Virtualization -> systemChef 服务器中的节点属性。

答案4

使用dmidecodeorlshwgreping 似乎是找出答案的最佳方法。

相关内容