如何检查 Linux 系统是在物理系统还是虚拟机上运行?

如果您使用 Linux 服务器,您可能会使用 SSH 连接到远程服务器。

在您无法直接访问系统的这种情况下,您可能想知道您的服务器是在虚拟机中运行还是在物理系统中运行。

让我告诉你如何做到这一点。

检查服务器是物理的还是虚拟的

有几个命令可以用于此目的。

使用 dmidecode 命令

最简单的检查方法是使用 dmidecode 命令。

sudo dmidecode -s system-manufacturer
  • 如果是物理系统,您应该看到制造商的名称,如戴尔、联想等。
  • 如果它是一个虚拟系统,您应该会看到类似的输出 QEMUinnotek Gmbh (为 VirtualBox)。

dmidecode 命令用于以人类可读格式解码计算机的 DMI 信息。

DMI,桌面管理界面的缩写,是(几乎)所有系统制造商都遵守的标准。 DMI 框架用于管理和跟踪台式机、笔记本电脑或服务器计算机中的组件。

借助 DMI,您可以获得有关系统硬件、系统制造商和设备序列号的信息。

dmidecode(DMI 解码)命令使您能够提取这些信息并使用 -s system-manufacturer 您可以获得系统制造商的详细信息。

如果您的系统是真实的,您应该会看到制造商的名称:

[email protected]:~$ sudo dmidecode -s system-manufacturer
Dell Inc.

如果是虚拟机,信息会相应反映。

[email protected]:~# dmidecode -s system-manufacturer
QEMU

那很快,不是吗? 您可以参考 dmidecode 命令的手册页以查看可用于提取更多信息的关键字。

如果要检查 Linux 版本详细信息,则必须使用 uname 命令,因为 dmidecode 是关于硬件详细信息的。

使用 virt-what

检查服务器是否在虚拟机上运行的另一种方法是使用 virt-what。

它基本上是一个 shell 脚本,可以在大多数 Linux 发行版中作为命令安装。

sudo apt install virt-what

如果服务器在真实的裸机系统上运行,它不会返回任何内容。 否则,它将列出有关虚拟机的一些事实。

[email protected]:~# virt-what 
kvm

我希望这篇文章能帮助您确定您的 Linux 服务器是在虚拟机上运行还是在物理机上运行。