Linux虛擬化平臺檢測

kobejayandy發表於2018-07-08


        如果要找出 Linux 系統執行在虛擬化平臺中還是硬體伺服器上,有多種方式可供大家選擇,這主要取決於你的 hypervisor 或 container 環境。不同的虛擬化或容器技術會在其例項中引入不同的識別指紋,如:處理器廠商、特殊的 /proc 檔案或虛擬網路卡名稱等。 另外通過 dmesg 顯示啟動序列,也可以找出 Linux 或 VPS 所使用虛擬化平臺型別的一些線索。

下面我們將介紹幾個命令列工具,讓大家可以非常容易地檢測到 Linux 所使用的虛擬化平臺型別。

方法一:dmidecode

要檢測 Linux 底層的虛擬化型別首選的就是 dmidecode 命令,它最初設計來顯示系統 BIOS 和硬體元件的相關資訊。使用如下命令便可以檢測相關虛擬化資訊:

sudo dmidecode -s system-manufacturer

檢測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虛擬化平臺型別的幾種方式

方法三:virt-what

我們介紹的最後一種檢測 Linux 所使用虛擬化型別的方法是 virt-what 命令,virt-what 實際上是一個 Shell 指令碼。它通過各種啟發式方法來識別虛擬化環境型別,可以檢測出 QEMU/KVM、VMware、Hyper-V、VirtualBox、OpenVZ/Virtuozzo、Xen、LXC、IBM PowerVM 以及 Parallels 等平臺型別。

在使用之前,大家需要先通過 apt-getyum 安裝 virt-what,再執行如下命令進行檢測:

sudo virt-what

檢測Linux虛擬化平臺型別的幾種方式



相關文章