GNU/Linux >> Tutoriales Linux >  >> Linux

Manera fácil de determinar la tecnología de virtualización

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

    [email protected]:~# dmidecode -s system-product-name
    VMware Virtual Platform
    
  • Caja virtual

    [email protected]:~# dmidecode -s system-product-name
    VirtualBox
    
  • Qemu con KVM

    [email protected]:~# dmidecode -s system-product-name
    KVM
    
  • Qemu (emulado)

    [email protected]:~# dmidecode -s system-product-name
    Bochs
    
  • PC virtual de Microsoft

    [email protected]:~# dmidecode | egrep -i 'manufacturer|product'
    Manufacturer: Microsoft Corporation
    Product Name: Virtual Machine
    
  • Virtuoso

    [email protected]:~# dmidecode
    /dev/mem: Permission denied
    
  • Xen

    [email protected]:~# 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

[[email protected] ~]# 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 03
    

    de 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 KVM
    

    En 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

Linux
  1. Manera sencilla de conectarse a varios repositorios de AWS CodeCommit

  2. Cómo configurar un servidor KVM de forma rápida

  3. Fácil instalación de VMware Ubuntu 21.10 (video)

  4. manera de determinar el valor óptimo para el parámetro Bs a Dd?

  5. Linux:¿una forma fácil de determinar la tecnología de virtualización de una máquina Linux?

Cómo encontrar si una CPU es compatible con la tecnología de virtualización (VT)

Una manera fácil de instalar FortiClient VPN [Consejo rápido]

Manera fácil de instalar el entorno de edición Kile LaTeX

Una manera fácil de instalar GIT (Guía completa)

¡Cómo instalar Ubuntu 18.04 Bionic Beaver de la manera más fácil!

Fundamentos de virtualización de VMware:VMware Server y VMware ESXi