平時工作中使用linux大部分是通過ssh遠程連接到服務器上,比如應用安裝部署和系統維護等。那么,對于沒有進過機房的人,如何知道自己使用的Linux服務器是虛擬機還是物理機呢?
1.dmidecode命令
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是虛擬機還是物理機方法,當然對于操作系統平臺之間的差異,不是所有方法都適用,有些需要額外安裝軟件包來實現,但是總有一種方法適合你,你學會了嗎?