有什么方法可以查明我正在运行(实际安装)的操作系统是否在 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 -> system
Chef 服务器中的节点属性。
答案4
使用dmidecode
orlshw
和grep
ing 似乎是找出答案的最佳方法。