Linux Machine: Is it Virtual or a Physical server

Sometimes, as a Linux Administrator, you want to know if a server you are working on remotely is a Physical device or a Virtual machine. This tutorial explains some simple command which will help you determine the nature of the machine you are working on.

SAMPLE 1  The dmidecode tool
This is the Desktop Management Interface table decoder and it retrieves comprehensive system information of your systems hardware components and presents it in a readable format.

Below are two images from the command: sudo dmidecode | more

You can download the dmidecode package from:
– Other derivatives of the dmidecode command are:

Sudo dmidecode –s system-manufacturer

My machine is a Virtual Machine. If it were a physical device, the output will be the name of the company that developed the device e.g. Dell Inc, Lenovo, Asus Inc.

Other virtualization tools exist such as innotek , which is German based company that develops Virtualbox.

sudo dmidecode –t system

sudo dmidecode | egrep -i 'manufacturer|product'
sudo dmidecode -s system-product-name

Their outputs will differ in format but they will tell the Physical or Virtual nature of the Linux machine.

SAMPLE 2 : hostnamectl
If you have system installed, hostnamectl is a very good good command to determine if the machine is physical or virtual.

Hotsnamectl status

SAMPLE 3 : Viewing the /sys/class/dmi/id/product_name using the cat command

cat /sys/class/dmi/id/product_name

However, this particular command has a certain peculiarity: a libvirt-kvm-VM will be displayed as Standard PC (i440fx +/PIIX) which is a common fingerprint for QEMU/KVM VITUAL virtual machines.

Another derivative of this command is;

pr –t /sys/class/dmi/id/sys-vendor/sys/class/dmi//id/product_name

SAMPLE 4: Using the dmesg tool with the following command;

 Sudo dmesg | grep “Hypervisor detected” 

What this dmesg does is to control the kernel buffer. If the machine is virtual, the output will be something like the image below. If it is a physical device, the command will return nothing

SAMPLE 5: virt-what
You will need to install this utility. And the command is just that. If the machine is virtual, the output will look like the image below:

If the machine is physical, it will return nothing or exit the script with code0.

SAMPLE 6: lshw
This utility is included in the epel-release. if you don’t have it already, you need to install it and then install the lshw utility.

If this were a physical device, the output under the product tag will be the model of the device.

SAMPLE 7: systemd-detect-virt
This command is unique in a way in that it can tell the difference in the virtualization tehnology if the system is on a virtual machine

If this were a physical device, the output to the command will be none. If it is a virtual machine on virtual box, the output will be oracle.

Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x
Kindly subscribe to TechDirectArchive
This is default text for notification bar