Как определить, выполняется ли текущая система в виртуальной машине?

Хороший вопрос — является ли Lnux-система реальной железкой или выполняется в виртуальной машине? Для этого можно проверить вывод команды dmesg. Также можно также использовать команду dmidecode, для получения информации из системного BIOS. Далее примеры выполнения команд в разных средах виртуализации.

Как определить, что система запущена в внутри KVM?

$ dmesg | grep -i virtual
[ 0.000000] DMI: Parallels Software International Inc. Parallels Virtual Platform/Parallels Virtual Platform, BIOS 6.12.26068.1232434 02/27/2017
[ 0.000000] Booting paravirtualized kernel on KVM
[ 1.301671] Performance Events: Haswell events, PMU not available due to virtualization, using software events only.
[ 6.911681] systemd[1]: Detected virtualization parallels.

Как определить, что система запущена в Xen?

$ dmesg | grep -i virtual
Xen virtual console successfully installed as xvc0

Как определить, что система запущена в внутри QEMU?

$ dmesg | grep -i virtual
CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03
$ dmidecode | egrep -i 'vendor'
Vendor: QEMU

Как определить, что система запущена в VmWare?

$ dmesg | grep -i virtual
VMware vmxnet virtual NIC driver         Vendor: VMware    Model: Virtual disk      Rev: 1.0
hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
$ dmidecode | egrep -i 'manufacturer|product'
Manufacturer: VMware, Inc.       Product Name: VMware Virtual Platform