Home  >  Article  >  System Tutorial  >  Check whether the Linux system is running on a virtual machine or a physical machine

Check whether the Linux system is running on a virtual machine or a physical machine

PHPz
PHPzforward
2024-02-13 18:12:031035browse

In addition to local development, we usually use Linux to connect to remote servers through ssh, such as system deployment, operation and maintenance, etc.

检查 Linux 系统是运行在虚拟机上还是物理机上

In the current environment where virtualization is very mature, most of the systems we deploy run in virtual machines. But some of them are on physical machines. So, how to distinguish whether our system is running on a virtual machine or a physical machine?

Let’s discuss this issue in detail below.

There are several commands that can be used to distinguish whether the system running environment is a virtual machine or a physical machine.

1, use the dmidecode command

The easiest way to distinguish between virtual machines and physical machines is to use the dmidecode command. As follows:

sudo dmidecode -s system-manufacturer

If it is a physical machine, you will see the name of the machine manufacturer, such as Dell, Lenovo, etc.;

If it is a virtual machine, you will see some output information similar to QEMU, innotek Gmbh (for VirtualBox), etc.

The dmidecode command is used to view the computer's DMI information, which is output in a human-readable format.

DMI is the abbreviation of Desktop Management Interface (Desktop Management Interface) and is a standard adhered to by almost all system manufacturers. The DMI framework is used to manage and track components in a desktop, laptop, or server computer.

Thanks to DMI, we can obtain information about the system hardware, system manufacturer, and device serial number, and using the dmidecode (DMI Decode) command, we can obtain this information. Alternatively, use -s system-manufacturer to obtain manufacturer details.

If the system environment is a physical machine, you can see the manufacturer's information, such as:

$ sudo dmidecode -s system-manufacturer
Dell Inc.

On the contrary, if it is a virtual machine, you can print out the virtual machine information, as shown below:

$ dmidecode -s system-manufacturer
QEMU

This command is more convenient to use. For detailed information about the dmidecode command, you can also view the man manual.

If you want to view Linux version information, you can use the uname command. Because the dmidecode command views hardware information, it is not applicable to software information.

2, use virt-what

Another way to distinguish between virtual machines and physical machines is to use virt-what

Basically, it can be understood as a shell script that can be installed as a command in most Linux distributions. The installation command is as follows:

sudo apt install virt-what

If the system is running on a physical machine, the virt-what command will not return any results; on the contrary, if it is running on a virtual machine, some information about the virtual machine will be output, as shown below:

$ virt-what 
kvm

The above is the detailed content of Check whether the Linux system is running on a virtual machine or a physical machine. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:lxlinux.net. If there is any infringement, please contact admin@php.cn delete