如何检查 Linux 系统是运行在虚拟机上还是物理机上?
source link: https://www.51cto.com/article/746440.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
如何检查 Linux 系统是运行在虚拟机上还是物理机上?
在当前虚拟化非常成熟的环境下,我们所部署的大部分系统都是运行在虚拟机中的。但是也有部分是在物理机上。那么,怎样区分我们的系统是运行在虚拟机上,还是物理机上呢?
下面我们来详细讨论下这个问题。
有几个命令可以用来区分系统运行环境是在虚拟机还是物理机。
1,使用 dmidecode 命令
区分虚拟机和物理机,最简单的方法是使用 dmidecode 命令。如下所示:
sudo dmidecode -s system-manufacturer
如果是物理机,你会看到机器制造商的名称,比如 Dell,Lenovo 等;
如果是虚拟机,你会看到一些类似于 QEMU, innotek Gmbh(for VirtualBox)等的输出信息。
dmidecode 命令用于查看计算机的 DMI 信息,该信息以人类可读的方式输出。
DMI 是桌面管理界面(Desktop Management Interface)的缩写,是几乎所有系统制造商都遵守的标准。DMI 框架用于管理和跟踪桌面、笔记本电脑或服务器计算机中的组件。
由于有了 DMI,我们可以获得有关系统硬件、系统制造商和设备序列号的信息,而使用 dmidecode(DMI Decode)命令,可以获取这些信息。另外,使用 -s system-manufacturer 也可获取制造商的详细信息。
如果系统环境是物理机,那么可以看到制造商的信息,比如:
$ sudo dmidecode -s system-manufacturer
Dell Inc.
相反,如果是虚拟机,可以将虚拟机的信息打印出来,如下所示:
$ dmidecode -s system-manufacturer
QEMU
这个命令用起来比较便捷。关于 dmidecode 命令的详细信息,大家也可以查看 man 手册。
如果想要查看 Linux 版本的信息,可以使用 uname 命令。因为 dmidecode 命令查看的是硬件信息,对于软件信息来说不适用。
2,使用 virt-what
区分虚拟机和物理机的另外一个方法是使用 virt-what
基本上,可以将其理解为是一个 shell 脚本,可以作为命令安装在大多数 Linux 发行版中。安装命令如下:
sudo apt install virt-what
如果系统运行在一个物理机上,virt-what 命令将不会返回任何结果;相反,如果是运行在虚拟机上,将会输出虚拟机的一些信息,如下所示:
$ virt-what
kvm
以上就是本次分享全部内容,欢迎讨论。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK