Команда, чтобы определить, работает ли Ubuntu на виртуальной машине?

16

Есть ли команда или инструмент, который можно использовать, чтобы определить, работает ли Ubuntu в качестве гостя в программе виртуализации, такой как VirtualBox или Qemu, или же она работает на голом железе?

Натан Осман
источник

Ответы:

16

virt-what Установите вирт-что - это сценарий оболочки, который можно использовать для определения, запущена ли программа на виртуальной машине.

Программа выводит список «фактов» о виртуальной машине, полученных из эвристики. Один факт печатается в каждой строке.

Если ничего не печатаются и выходит из сценария с кодом 0 (без ошибок), то это может означать либо то , что программа работает на голом железе или программа работает внутри типа виртуальной машины , которую мы не знаем о или не можем обнаружить.

РЕЗЮМЕ

sudo virt-what [facts]

ФАКТЫ

aws Amazon Web Services cloud guest.

    Status: contributed by Qi Guo.

bhyve
    This is a bhyve (FreeBSD hypervisor) guest.

    Status: contributed by Leonardo Brondani Schenkel.

docker
    This is a Docker container.

    Status: confirmed by Charles Nguyen

hyperv
    This is Microsoft Hyper-V hypervisor.

    Status: confirmed by RWMJ

ibm_power-kvm
    This is an IBM POWER KVM guest.

    Status: contributed by Adrian Likins.

ibm_power-lpar_shared
ibm_power-lpar_dedicated
    This is an IBM POWER LPAR (hardware partition) in either shared or
    dedicated mode.

    Status: contributed by Adrian Likins.

ibm_systemz
    This is an IBM SystemZ (or other S/390) hardware partitioning
    system. Additional facts listed below may also be printed.

ibm_systemz-direct
    This is Linux running directly on a IBM SystemZ hardware
    partitioning system.

    This is expected to be a highly unusual configuration - if you see
    this result you should treat it with suspicion.

    Status: not confirmed

ibm_systemz-lpar
    This is Linux running directly on an LPAR on an IBM SystemZ hardware
    partitioning system.

    Status: confirmed by Thomas Huth

ibm_systemz-zvm
    This is a z/VM guest running in an LPAR on an IBM SystemZ hardware
    partitioning system.

    Status: confirmed by RWMJ using a Fedora guest running in z/VM

ibm_systemz-kvm
    This is a KVM guest running on an IBM System Z hardware system.

    Status: contributed by Thomas Huth

ldoms
    The guest appears to be running on an Linux SPARC system with Oracle
    VM Server for SPARC (Logical Domains) support.

    Status: contributed by Darren Kenny

ldoms-control
    The is the Oracle VM Server for SPARC (Logical Domains) control
    domain.

    Status: contributed by Darren Kenny

ldoms-guest
    The is the Oracle VM Server for SPARC (Logical Domains) guest
    domain.

    Status: contributed by Darren Kenny

ldoms-io
    The is the Oracle VM Server for SPARC (Logical Domains) I/O domain.

    Status: contributed by Darren Kenny

ldoms-root
    The is the Oracle VM Server for SPARC (Logical Domains) Root domain.

    Status: contributed by Darren Kenny

linux_vserver
    This is printed for backwards compatibility with older virt-what
    which could not distinguish between a Linux VServer container guest
    and host.

linux_vserver-guest
    This process is running in a Linux VServer container.

    Status: contributed by Barış Metin

linux_vserver-host
    This process is running as the Linux VServer host (VxID 0).

    Status: contributed by Barış Metin and Elan Ruusamäe

lxc This process is running in a Linux LXC container.

    Status: contributed by Marc Fournier

kvm This guest is running on the KVM hypervisor using hardware
    acceleration.

    Note that if the hypervisor is using software acceleration you
    should *not* see this, but should see the "qemu" fact instead.

    Status: confirmed by RWMJ.

lkvm
    This guest is running on the KVM hypervisor using hardware
    acceleration, and the userspace component of the hypervisor is lkvm
    (a.k.a kvmtool).

    Status: contributed by Andrew Jones

openvz
    The guest appears to be running inside an OpenVZ or Virtuozzo
    container.

    Status: contributed by Evgeniy Sokolov

ovirt
    The guest is running on an oVirt node. (See also "rhev" below).

    Status: contributed by RWMJ, not confirmed

parallels
    The guest is running inside Parallels Virtual Platform (Parallels
    Desktop, Parallels Server).

    Status: contributed by Justin Clift

powervm_lx86
    The guest is running inside IBM PowerVM Lx86 Linux/x86 emulator.

    Status: data originally supplied by Jeffrey Scheel, confirmed by
    Yufang Zhang and RWMJ

qemu
    This is QEMU hypervisor using software emulation.

    Note that for KVM (hardware accelerated) guests you should *not* see
    this.

    Status: confirmed by RWMJ.

rhev
    The guest is running on a Red Hat Enterprise Virtualization (RHEV)
    node.

    Status: confirmed by RWMJ

uml This is a User-Mode Linux (UML) guest.

    Status: contributed by Laurent Léonard

virt
    Some sort of virtualization appears to be present, but we are not
    sure what it is. In some very rare corner cases where we know that
    virtualization is hard to detect, we will try a timing attack to see
    if certain machine instructions are running much more slowly than
    they should be, which would indicate virtualization. In this case,
    the generic fact "virt" is printed.

virtage
    This is Hitachi Virtualization Manager (HVM) Virtage hardware
    partitioning system.

    Status: data supplied by Bhavna Sarathy, not confirmed

virtualbox
    This is a VirtualBox guest.

    Status: contributed by Laurent Léonard

virtualpc
    The guest appears to be running on Microsoft VirtualPC.

    Status: not confirmed

vmm This is a vmm (OpenBSD hypervisor) guest.

    Status: contributed by Jasper Lievisse Adriaanse.

vmware
    The guest appears to be running on VMware hypervisor.

    Status: confirmed by RWMJ

xen The guest appears to be running on Xen hypervisor.

    Status: confirmed by RWMJ

xen-dom0
    This is the Xen dom0 (privileged domain).

    Status: confirmed by RWMJ

xen-domU
    This is a Xen domU (paravirtualized guest domain).

    Status: confirmed by RWMJ

xen-hvm
    This is a Xen guest fully virtualized (HVM).

    Status: confirmed by RWMJ

Извините, но это ваш парень ....;)

hhlp
источник
6

Запустите lspciи проверьте строку «VirtualBox».

Вы могли бы бежать lspci | grep VirtualBox

Вы также можете запустить lsusbи проверить строку «VirtualBox». Такие какlsusb | grep VirtualBox

Также dmesgработает, беги dmesg | grep VirtualBoxилиdmesg | grep virtual

анонимное
источник
По крайней мере одно сообщение virtualbox может появиться на хосте, на котором запущены гости virtualbox, поэтому я бы выбрал опцию dmesg. Но lspci и lsusb хороши.
Джо П
Я думаю, что решения командной строки лучше, чем установка пакетов. Если у вас есть привилегии суперпользователя в системе (для установки пакетов), вероятно, вы не уверены, виртуализирована она или нет?
Джо П
@JoeP Вы правы - кроме ... Что, если вы запускаете скрипт на всех своих машинах, и ему нужно знать, виртуализирован хост или нет?
Мэй
3

imvirt (не установлен по умолчанию, но доступен в репозитории юниверсов)

Флориан Диш
источник