如果要找出 Linux 系统运行在虚拟化平台中还是硬件服务器上,有多种方式可供大家选择,这主要取决于你的 hypervisor 或 container 环境。不同的虚拟化或容器技术会在其实例中引入不同的识别指纹,如:处理器厂商、特殊的 /proc 文件或虚拟网卡名称等。 另外通过 dmesg 显示启动序列,也可以找出 Linux 或 VPS 所使用虚拟化平台类型的一些线索。

下面我们将介绍几个命令行工具,让大家可以非常容易地检测到 Linux 所使用的虚拟化平台类型。

方法一:dmidecode

要检测 Linux 底层的虚拟化类型首选的就是 dmidecode

sudo dmidecode -s system-manufacturer

linux 查看是否支撑虚拟化 linux查看虚拟化类型_虚拟化技术

系统极客网站运行在 Microsoft Azure 平台上,所以检测出来是微软的 Hyper-V。如果你的系统运行在物理服务器上,输入的将是硬件制造商的实际名称(如 Dell Inc.)。如果你的 Linux 是运行在虚拟化平台中,则会显示所使用的虚拟化技术相关名称,如 「Microsoft Corporation」「QEMU」「Xen」「VirtualBox」「VMware, Inc」等等。

注意:该方法不适用于基于容器的虚拟化技术。

方法二:systemd

对于使用 systemd 的 Linux 系统,可以使用 systemd-detect-virt 命令来进行检测,该命令目前可以同时检测到基于 hypervisor 的虚拟化技术(例如 KVM、QEMU、VMware、Xen、Oracle VM、VirtualBox、UML)和基于容器的虚拟化技术(例如 LXC、Docker、OpenVZ)。

systemd-detect-virt

注意:在物理服务器上使用该命令会输出「none」。

linux 查看是否支撑虚拟化 linux查看虚拟化类型_linux 查看是否支撑虚拟化_02

方法三:virt-what

我们介绍的最后一种检测 Linux 所使用虚拟化类型的方法是 virt-what

在使用之前,大家需要先通过 apt-get 或 yum

sudo virt-what

linux 查看是否支撑虚拟化 linux查看虚拟化类型_虚拟化_03