dmidecode -s system-product-name
He probado en Vmware Workstation, VirtualBox, QEMU con KVM, QEMU independiente con Ubuntu como sistema operativo invitado. Otros han agregado plataformas adicionales con las que también están familiarizados.
Tecnologías de virtualización
-
Estación de trabajo VMware
example@unixlinux.online:~# dmidecode -s system-product-name VMware Virtual Platform -
Caja virtual
example@unixlinux.online:~# dmidecode -s system-product-name VirtualBox -
Qemu con KVM
example@unixlinux.online:~# dmidecode -s system-product-name KVM -
Qemu (emulado)
example@unixlinux.online:~# dmidecode -s system-product-name Bochs -
PC virtual de Microsoft
example@unixlinux.online:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine -
Virtuoso
example@unixlinux.online:~# dmidecode /dev/mem: Permission denied -
Xen
example@unixlinux.online:~# dmidecode | grep -i domU Product Name: HVM domU
En bare metal, esto devuelve una identificación de la computadora o el modelo de placa base.
/dev/disk/by-id
Si no tiene los derechos para ejecutar dmidecode entonces puedes usar:
Tecnología de virtualización:QEMU
ls -1 /dev/disk/by-id/
Salida
[example@unixlinux.online ~]# ls -1 /dev/disk/by-id/
ata-QEMU_DVD-ROM_QM00003
ata-QEMU_HARDDISK_QM00001
ata-QEMU_HARDDISK_QM00001-part1
ata-QEMU_HARDDISK_QM00002
ata-QEMU_HARDDISK_QM00002-part1
scsi-SATA_QEMU_HARDDISK_QM00001
scsi-SATA_QEMU_HARDDISK_QM00001-part1
scsi-SATA_QEMU_HARDDISK_QM00002
scsi-SATA_QEMU_HARDDISK_QM00002-part1
Referencias
- Cómo detectar la virtualización en dmo.ca
Si el contenedor está ejecutando systemd :
$ systemd-detect-virt
lxc
En KVM, por ejemplo, devuelve:
kvm
y en un host no virtualizado:
none
Véase también:
- systemd-detectar-virt(1)
- Detección de virtualización
Método deseable
lshw
Este comando produce el siguiente resultado en varios invitados de tecnología VM.
$ sudo lshw -class system
Salida
-
KVM
mungr description: Computer product: KVM vendor: Red Hat width: 64 bits capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32 -
Caja Virtual
fedora17 description: Computer product: VirtualBox () vendor: innotek GmbH version: 1.2 serial: 0 width: 64 bits capabilities: smbios-2.5 dmi-2.5 vsyscall32 -
VMware
partedmagic description: Computer product: VMware Virtual Platform () vendor: VMware, Inc. version: None serial: VMware-56 4d 94 a0 53 e3 f3 c6-f9 a6 eb 1a 89 70 04 57 width: 32 bits capabilities: smbios-2.4 dmi-2.4 smp-1.4 smp
Secuencias de comandos
Si está en Ubuntu/Debian, existe el paquete open-vm-tools se puede instalar. Proporciona vmware-checkvm . Devuelve solo un dígito. Un 0 significa que es una máquina virtual, un 1 significa que es un sistema físico.
Métodos menos deseables
Si es KVM el /proc/scsi/scsi y ethtool las opciones se muestran de la siguiente manera:
SCSI
$ cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: QEMU Model: QEMU DVD-ROM Rev: 0.9.
Type: CD-ROM ANSI SCSI revision: 05
herramienta ética
$ ethtool -i eth0
driver: virtio_net
version:
firmware-version:
bus-info: virtio0
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
virtio_net es parte de KVM. El /proc/scsi/scsi te dice que estás en una VM y que probablemente seas KVM.
dmesg
Usando los siguientes comandos grep pasando por dmesg registro.
$ sudo dmesg | grep -i virtual
-
VMware
VMware vmxnet virtual NIC driver Vendor: VMware Model: Virtual disk Rev: 1.0 hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive -
QEmu o KVM
Si el
"-cpu host"no se ha utilizado la opción, QEmu y KVM se identificarán como:CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03de lo contrario, la información de la CPU del host se usará tanto en
dmesg, o en/proc/cpuinfo. Sin embargo, debería ver algo como:[ 0.000000] Booting paravirtualized kernel on KVMEn kernels más nuevos que entienden que se están ejecutando bajo paravirtualización.
-
PC virtual de Microsoft
hda: Virtual HD, ATA DISK drive hdc: Virtual CD, ATAPI CD/DVD-ROM drive -
Xen
$ sudo dmesg | grep -i xen Xen virtual console successfully installed as tty1 -
Virtuoso
# method #1 $ sudo dmesg (returns no output) # method #2 $ sudo cat /var/log/dmesg (returns no output) # method #3 $ sudo ls -al /proc/vz veinfo veinfo_redir veredir vestat vzaquota vzdata
Referencias
- dmo.ca/ blog/ Cómo detectar la virtualización