如何檢查 Linux 系統是運行在虛擬機上還是物理機上?
在當前虛擬化非常成熟的環境下,我們所部署的大部分系統都是運行在虛擬機中的。但是也有部分是在物理機上。那么,怎樣區分我們的系統是運行在虛擬機上,還是物理機上呢?
下面我們來詳細討論下這個問題。
有幾個命令可以用來區分系統運行環境是在虛擬機還是物理機。
1,使用 dmidecode 命令
區分虛擬機和物理機,最簡單的方法是使用 dmidecode 命令。如下所示:
如果是物理機,你會看到機器制造商的名稱,比如 Dell,Lenovo 等;
如果是虛擬機,你會看到一些類似于 QEMU, innotek Gmbh(for VirtualBox)等的輸出信息。
dmidecode 命令用于查看計算機的 DMI 信息,該信息以人類可讀的方式輸出。
DMI 是桌面管理界面(Desktop Management Interface)的縮寫,是幾乎所有系統制造商都遵守的標準。DMI 框架用于管理和跟蹤桌面、筆記本電腦或服務器計算機中的組件。
由于有了 DMI,我們可以獲得有關系統硬件、系統制造商和設備序列號的信息,而使用 dmidecode(DMI Decode)命令,可以獲取這些信息。另外,使用 -s system-manufacturer 也可獲取制造商的詳細信息。
如果系統環境是物理機,那么可以看到制造商的信息,比如:
相反,如果是虛擬機,可以將虛擬機的信息打印出來,如下所示:
這個命令用起來比較便捷。關于 dmidecode 命令的詳細信息,大家也可以查看 man 手冊。
如果想要查看 Linux 版本的信息,可以使用 uname 命令。因為 dmidecode 命令查看的是硬件信息,對于軟件信息來說不適用。
2,使用 virt-what
區分虛擬機和物理機的另外一個方法是使用 virt-what
基本上,可以將其理解為是一個 shell 腳本,可以作為命令安裝在大多數 Linux 發行版中。安裝命令如下:
如果系統運行在一個物理機上,virt-what 命令將不會返回任何結果;相反,如果是運行在虛擬機上,將會輸出虛擬機的一些信息,如下所示:
以上就是本次分享全部內容,歡迎討論。