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

时间:2020-03-05 15:29:26  来源:igfitidea点击:

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

在我们没有直接访问系统的情况下,我们可能想知道服务器是否在虚拟机或者物理系统上运行。

检查服务器是否是物理或者虚拟

我们可以使用几种命令来检查

使用dmidecode命令

通过使用DMideCode命令来检查该方法的最简单方法。

sudo dmidecode -s system-manufacturer
  • 如果是物理系统,我们应该看到戴尔,联想等的制造商的名称
  • 如果是虚拟系统,则应查看Qemu,Innotek GmbH(for VirtualBox)等输出。

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

DMI,桌面管理界面短,是(几乎)所有系统制造商坚持的标准。

DMI框架用于管理和跟踪桌面,笔记本电脑或者服务器计算机中的组件。

感谢DMI,我们可以获得有关系统硬件,系统制造商和设备序列号的信息。

DMideCode(DMI Decode)命令使我们可以提取这些信息并使用"--S系统制造商":我们可以获得系统制造商详细信息。

如果系统是真实的,则应查看制造商的名称:

Hyman@theitroad:~$sudo dmidecode -s system-manufacturer
Dell Inc.

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

Hyman@theitroad:~# dmidecode -s system-manufacturer
QEMU

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

如果要查看Linux版本详细信息,则必须使用"uname"命令,因为DMidecode均为硬件详细信息。

使用virt-what

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

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

sudo apt install virt-what

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

Hyman@theitroad:~# virt-what 
kvm