平时工作中使用linux大部分是通过ssh远程连接到服务器上,比如应用安装部署和系统维护等。那么,对于没有进过机房的人,如何知道自己使用的Linux服务器是虚拟机还是物理机呢?
dmidecode命令可以获取有关系统硬件的详细信息,包括制造商信息。虚拟机通常会在制造商信息中显示虚拟化平台的名称。在终端中运行以下命令:
[root@localhost ~]# dmidecode -s system-product-name
VMware Virtual Platform
2.检查/sys文件系统
在/sys文件系统中有一个文件可以帮助你确定系统是虚拟机还是物理机。使用以下命令:
[root@localhost ~]# cat /sys/class/dmi/id/product_name
VMware Virtual Platform
3.lscpu命令
lscpu命令在Linux下输出与系统CPU相关的信息。此命令从 /proc/cpuinfo 和 sysfs文件中检索CPU的体系结构(线程、CPU高速缓存、CPU 系列型号、内核、CPU数量等)信息,并将其显示在终端中。使用以下命令:
[root@localhost ~]# lscpu | grep Hypervisor
Hypervisor vendor: VMware
4.lscpi命令
lspci命令是用于列出所有PCI总线上的设备信息,输出结果包括:设备的类别、型号、厂商、状态、IRQ等信息。输出结果的每一行对应一个设备,通常默认按照总线、设备号、功能号的顺序排列。使用以下命令:
[root@localhost ~]# lspci | grep -i virtual
00:07.7 System peripheral: VMware Virtual machine Communication Interface (rev 10)
5.systemd-detect-virt命令
systemd-detect-virt 用于检测系统的运行环境是否为虚拟化环境,以及更进一步检测是哪种虚拟化环境,比如是哪种虚拟机或哪种容器。使用以下命令:
[root@localhost ~]# systemd-detect-virt
vmware
6.virt-what命令
virt-what 实际上是一个 Shell 脚本。它通过各种启发式方法来识别虚拟化环境类型,可以检测出 QEMU/KVM、VMware、Hyper-V、VirtualBox、OpenVZ/Virtuozzo、Xen、LXC、IBM PowerVM 以及 Parallels 等平台类型。使用以下命令:
[root@localhost ~]# virt-what
vmware
7.dmesg命令
dmesg命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构、cpu、挂载的硬件,RAM等多个运行级别的大量的系统信息。使用以下命令:
[root@localhost ~]# dmesg | grep -i hypervisor
[ 0.000000] Hypervisor detected: VMware
[root@localhost ~]# lshw -class system
localhost
description: Computer
product: VMware Virtual Platform
vendor: VMware, Inc.
以上,是比较常见的用来检测Linux是虚拟机还是物理机方法,当然对于操作系统平台之间的差异,不是所有方法都适用,有些需要额外安装软件包来实现,但是总有一种方法适合你,你学会了吗?