Хороший вопрос — является ли 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