VMware Linux Server - como saber se você é um hardware vm ou real?

44

Uma questão interessante. Eu entrei em um host Linux (provavelmente SuSE). Existe alguma maneira que eu possa dizer programaticamente que eu sou um host de VM ou não?

Assuma também que as vmtools não estão instaladas.

    
por mdpc 16.09.2009 / 01:21

12 respostas

28

Use ferramentas padrão do Linux para inspecionar o hardware no sistema.

cat /proc/scsi/scsi

ou

ethtool -i eth0

ou

dmidecode | grep -i vmware

Se a saída desses comandos mostrar o hardware com um nome de fabricante "VMWare", você estará em uma VM VMWare. Vários comandos são fornecidos aqui porque as configurações e ferramentas do sistema são diferentes.

    
por 10.06.2011 / 21:24
13
facter virtual 
xenu

indica que é uma VM. Se retornou “físico”, então o oposto é verdadeiro (não uma VM), por exemplo:

facter virtual
Physical
    
por 22.01.2013 / 20:14
11

Existe um aplicativo útil que pode ajudar chamado virt-what . Eu não usei isso com o VMWare, mas funcionou muito bem com o Qemu.

    
por 16.09.2009 / 02:34
10

Você pode conseguir ideias ao olhar em /sys . Por exemplo, /sys/class/dmi/id/sys_vendor tem um valor de VMware, Inc. .

Se estiver instalado, você pode usar lshw . O comando lshw -class system retorna isso no meu sistema:

server1
    description: Computer
    product: VMware Virtual Platform
    vendor: VMware, Inc.
    version: None
    serial: VMware-...
    width: 64 bits
    capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
    
por 16.09.2009 / 01:37
6

Alguns ambientes virtuais nomeiam alguns dos seus dispositivos virtuais com nomes que são um pouco reveladores, por exemplo, o VirtualBox apresenta uma placa gráfica que se chama "VirtualBox Display Adapter". Mas procurando por aqueles que ligam você a uma VM específica e, possivelmente, a uma pequena variedade de versões.

Pode ser possível para o seu código ver que tipo de virtualização ele pode configurar. Se isso falhar completamente, você pode estar em uma VM. Mas você pode facilmente estar em uma caixa que não possui hardware compatível com VMs.

    
por 16.09.2009 / 01:38
4

Para Linux, você digita dmesg |grep DMI :

SAÍDA HOST VIRTUAL

[root@myhost ~]# dmesg |grep DMI
DMI 2.3 present.
DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006  05/23/2012

[root@myhost ~]# dmesg |grep -i virtual
DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006  05/23/2012
Booting paravirtualized kernel on bare hardware
input: Macintosh mouse button emulation as /devices/virtual/input/input1
scsi 0:0:0:0: Direct-Access     Msft     Virtual Disk     1.0  PQ: 0 ANSI: 4
input: Microsoft Vmbus HID-compliant Mouse as /devices/virtual/input/input4

PARA EXEMPLO DE HOSPEDEIRO FÍSICO

[root@backdev1 ~]# dmesg |grep DMI
DMI 2.5 present.
DMI: IBM System x3650 M3 -[7945AC1]-/90Y4784, BIOS -[D6E153AUS-1.12]- 06/30/2011
    
por 10.04.2014 / 20:43
4

Há muito código lá fora para detectar se você está em uma VM ou não. Comece com o comprimido vermelho e pesquise a partir daí. Este artigo na Offensive Computing é também uma boa leitura.

Isso se nenhum desses fáceis acima do trabalho:)

    
por 18.09.2009 / 22:25
3

Você também pode pesquisar a primeira parte do seu endereço MAC aqui e ver se ele está listado como atribuído para qualquer uma das empresas de virtualização.

    
por 16.09.2009 / 02:18
3

Dispositivos virtuais também serão revelados por lspci e / ou informações do dispositivo de disco em / proc:

lspci | grep -i vmware

grep -i vmware /proc/scsi/scsi /proc/ide/*/model
    
por 18.09.2009 / 20:55
2

No Linux, as informações do sistema são reveladas em / sys / devices / virtual / dmi / id /. Veja minha resposta aqui para um script útil para mostrar todas as informações disponíveis.

root não é necessário.

    
por 20.02.2015 / 21:05
1

Eu não gostei de nenhuma dessas soluções, já que geralmente há um driver de CD-ROM ou driver de memória VMware instalado, então o dmesg confirma ou nega isso para mim rapidamente.

[server@user ~]$ dmesg |grep VMware
hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
Vendor: VMware    Model: Virtual disk      Rev: 1.0
VMware memory control driver initialized
    
por 03.02.2011 / 14:15
1

Isso funcionou melhor para mim, pois me fornece informações específicas sobre o fabricante e o nome do produto.

dmidecode -t system|grep 'Manufacturer\|Product'

Saída no servidor Dell:

Manufacturer: Dell Inc.
Product Name: PowerEdge C5220

Saída na VM do Virtualbox:

Manufacturer: innotek GmbH
Product Name: VirtualBox

Saída no KVM / QEMU:

Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)

Isso é ótimo para scripts que podem analisá-los para melhor identificação de servidores ... mas se você usar o Chef em sua infraestrutura, poderá verificar o atributo do nó Virtualization -> system no servidor do chef.

    
por 10.09.2015 / 22:50