Soluzione 1:
hostnamectl
è tuo amico (richiede systemd
).
Alcuni esempi:
Laptop senza alcuna virtualizzazione
$ hostnamectl status
Static hostname: earth.gangs.net
Icon name: computer-laptop
Chassis: laptop
Machine ID: 18a0752e1ccbeef09da51ad17fab1f1b
Boot ID: beefdc99969e4a4a8525ff842b383c62
Operating System: Ubuntu 16.04.2 LTS
Kernel: Linux 4.4.0-66-generic
Architecture: x86-64
Xen
$ hostnamectl status
Static hostname: pluto.gangs.net
Icon name: computer-vm
Chassis: vm
Machine ID: beef39aebbf8ba220ed0438b54497609
Boot ID: beefc71e97ed48dbb436a470fe1920e1
Virtualization: xen
Operating System: Ubuntu 16.04.2 LTS
Kernel: Linux 3.13.0-37-generic
Architecture: x86-64
OpenVZ
$ hostnamectl status
Static hostname: mars.gangs.net
Icon name: computer-container
Chassis: container
Machine ID: 55296cb0566a4aaca10b8e3a4b28beef
Boot ID: 1bb259b0eb064d9eb8a22d112211beef
Virtualization: openvz
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 2.6.32-042stab120.16
Architecture: x86-64
KVM
$ hostnamectl status
Static hostname: mercury.gangs.net
Icon name: computer-vm
Chassis: vm
Machine ID: beeffefc50ae499881b024c25895ec86
Boot ID: beef9c7662a240b3b3b04cef3d1518f0
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.10.2.el7.x86_64
Architecture: x86-64
Soluzione 2:
A meno che l'host della VM non ti stia mentendo, in genere può essere capito ispezionando l'"hardware" che l'ospite della VM sta vedendo.
Il modo più semplice è probabilmente usare un programma come virt-what, che eseguirà l'analisi per te. A proposito, presumo ciecamente che tu stia eseguendo una sorta di distribuzione basata su Linux.
Potrebbe anche valere la pena dare un'occhiata al fattore di marionetta, che utilizza anch'esso tecniche simili per determinare in quale tipo di ambiente VM è in esecuzione.
Oppure potresti chiedere a chi ti capita di noleggiare il VPS? :-)
Soluzione 3:
Usa il virt-what
comando per determinare il tipo di tecnologia di virtualizzazione utilizzata dal sistema.
Vedere:http://people.redhat.com/~rjones/virt-what/
Soluzione 4:
Systemd include systemd-detect-virt
Soluzione 5:
Debian viene fornita con questo piccolo pacchetto per rilevare il tipo di virtualizzazione:
$ sudo apt-get install virt-what
$ virt-what
e un po' più grande a causa delle dipendenze Perl:
$ sudo apt-get install imvirt
$ imvirt