VMware Linux Server - Bir vm veya gerçek bir donanım olup olmadığını nasıl anlarsınız?


46

İlginç bir soru. Bir Linux (muhtemelen SuSE) ana bilgisayarına giriş yaptım. Programlı olarak bir VM sunucusuyum olup olmadığını söylememin bir yolu var mı?

Ayrıca vmtools yüklü olmadığını varsayalım.


Bu cevabı da kontrol ediniz: unix.stackexchange.com/a/32605/103980
Muhamed

Yanıtlar:


29

Sistemdeki donanımı incelemek için standart Linux araçlarını kullanın.

cat /proc/scsi/scsi

veya

ethtool -i eth0

veya

dmidecode | grep -i vmware

Bu komutların çıktısı "VMWare" üreticisinin adını taşıyan bir donanım gösteriyorsa, bir VMWare VM'sindesiniz. Burada sistem konfigürasyonları ve araçları farklı olduğu için çoklu komutlar verilmiştir.


12
Yalnızca belirsiz komutlar vermek yerine bu komutların ne yaptığını açıklayabilir misiniz?
Stefan Lasiewski

Teşekkürler. cat /proc/scsi/scsigüzel, çünkü her yerde mevcut gibi görünüyor ve yeni yazılım yüklemenizi veya ayrıcalıklı haklarla çalıştırmanızı gerektirmiyor.
tiktak

@tiktak /proc/scsi/scsiDebian 7 kutumda göremiyorum ...
Kyle Strand

1
Bunun% 100 güvenilir olmadığını unutmayın. Örneğin, AWS kutuları VM'ler gibi görünmeyecek. man virt-whatBu algılama amacıyla (RedHat / Fedora sistemleri için) ve ilgili uyarılar için oluşturulmuş sezgisel yazıya bakın .
Wildcard

13
facter virtual 
xenu

bunun bir VM olduğunu gösterir. Eğer “fiziksel” olarak dönerse, bunun tersi doğrudur (VM değil), örneğin:

facter virtual
Physical

Ancak, bu standart dışı özel bir paket .... ama hoşuma gitti.
mdpc

1
@mdpc Kukla kullanan herhangi bir sistemde bulunmalıdır.
Michael Hampton

11

Virt-what denilen yardımcı olabilecek kullanışlı bir uygulama var . VMWare ile kullanmadım, ancak Qemu ile iyi çalıştı.


1
Ne yazık ki ikili RPM, SuSE reklamında denendiğinde iki bağımlılığa sahiptir.
mdpc

10

Etrafınıza bakarak etrafa fikir verebilir ve düşünebilirsiniz /sys. Örneğin /sys/class/dmi/id/sys_vendordeğeri var VMware, Inc..

Yüklüyse , lshw kullanabilirsiniz . Komut lshw -class systembunu sistemime döndürür:

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

SuSE örneğinde, lshw'ye erişimim var. Ayrıca, / sys / class / dmi / ... mevcut değil.
mdpc

6

Bazı sanal ortamlar, bazı sanal cihazlarını, örneğin "SanalBox Display Adapter" olarak adlandırılan bir grafik kartı sunan VirtualBox gibi, biraz anlatacak isimlere sahip isimler verir. Ancak bunları aramak sizi belirli bir sanal makineye ve muhtemelen çok çeşitli sürümlere bağlar.

Kodunuzun ne tür bir sanallaştırma ayarlayabileceğini görmesi mümkün olabilir. Bu tamamen başarısız olursa, bir VM'de olabilirsiniz. Fakat siz de kolayca VM yetenekli donanıma sahip olmayan bir kutuda olabilirsiniz.


İlk cevabınız doğru oldu. Aygıt sürücüsü adlarını kontrol edin.
Izzy,

4

Linux için şunu yazın dmesg |grep DMI:

SANAL HOST ÇIKIŞI

[root @ myhost ~] # dmesg | grep DMI
DMI 2.3 mevcut.
DMI: Microsoft Corporation Sanal Makine / Sanal Makine, BIOS 090006 05/23/2012

[root @ myhost ~] # dmesg | grep -i sanal
DMI: Microsoft Corporation Sanal Makine / Sanal Makine, BIOS 090006 05/23/2012
Paravirtualize çekirdeği çıplak donanımdan başlatmak
giriş: Macintosh fare düğmesi öykünme / devices / virtual / input / input1 olarak
scsi 0: 0: 0: 0: Doğrudan Erişim Msft Sanal Disk 1.0 PQ: 0 ANSI: 4
giriş: Microsoft Vmbus HID uyumlu fare / devices / virtual / input / input4 olarak

FİZİKSEL HOST ÖRNEK İÇİN

[root @ backdev1 ~] # dmesg | grep DMI
DMI 2.5 mevcut.
DMI: IBM System x3650 M3 - [7945AC1] - / 90Y4784, BIOS - [D6E153AUS-1,12] - 06/30/2011

1
Çözümünüzle ilgili en büyük sorun dmesg'in çekirdek tamponunu okuduğu ve sınırlı boyutta olmasıdır. Sistemin yeniden başlatılmasından bu yana çok fazla mesaj ya da zaman varsa, bu bilgi kullanılamaz.
mdpc

4

VM'de olup olmadığınızı tespit etmek için bir sürü kod var. Kırmızı hapla başla ve oradan ara. Offensive Computing'deki bu makale aynı zamanda iyi bir okumadır.

Bu işte kolay olanlardan hiçbiri işe yaramazsa :)


İlk bağlantı koptu. İkincisi ya kırılmış ya da yavaş.
Wildcard

Haklısın. Zamanın kumları onları yemiş ... Bakalım alternatif bağlantılar bulabilirmiyim.
Bill Weiss,

Bu bir utanç; "kırmızı hap" kulağa ilginç geldi. :)
Wildcard

1
Archive.org bağlantıları ile güncellendi.
Bill Weiss,

3

Ayrıca mac adresinizin ilk bölümünü burada arayabilir ve sanallaştırma şirketlerinden birine atanmış olarak listelenip listelenmediğini görebilirsiniz.


İlginç bir fikir ....
İşe

2
Güvenilir olmayacak. Çoğu durumda, mac isteğe bağlı bir değere ayarlanabilir. Bu, orijinal makinenin mac'unu VM'ye dönüştürürken klonlamayı etkinleştirmek için kullanılır. Bazı yazılımlar lisansını mac'a bağlar ve genellikle yeni bir lisans almak imkansızdır (satıcı bozuldu veya maliyetler engelleyicidir).
Tonny

3

Sanal aygıtlar ayrıca / proc içindeki lspci ve / veya disk aygıtı bilgisi tarafından da gösterilecektir:

lspci | grep -i vmware

grep -i vmware /proc/scsi/scsi /proc/ide/*/model

2

Linux'ta, sistem bilgisi / sys / devices / virtual / dmi / id / dizininde gösterilmektedir. Size mevcut tüm bilgileri göstermek için kullanışlı bir komut dosyası için cevabımı burada görün .

kök gerekli değil.


1

Bu çözümlerin hiçbirini beğenmedim, çünkü genellikle bir VMware CDROM sürücüsü ya da yüklü bellek sürücüsü olduğundan, dmesg bunu benim için hızlı bir şekilde onaylar ya da reddeder.

[server @ user ~] $ dmesg | grep VMware
hda: VMware Sanal IDE CDROM Sürücüsü, ATAPI CD / DVD-ROM sürücüsü
Satıcı: VMware Model: Sanal disk Rev: 1.0
Satıcı: VMware Model: Sanal disk Rev: 1.0
Satıcı: VMware Model: Sanal disk Rev: 1.0
Satıcı: VMware Model: Sanal disk Rev: 1.0
Satıcı: VMware Model: Sanal disk Rev: 1.0
Satıcı: VMware Model: Sanal disk Rev: 1.0
Satıcı: VMware Model: Sanal disk Rev: 1.0
VMware bellek kontrol sürücüsü başlatıldı

3
Bu başlangıçta işe yarayacak, ancak daha sonra dmesg'in temizlenmediğini veya taşmadıklarını garanti edemezsiniz.
mattdm

Bu benim de genelde yaptığım şey, bu grepping dmesg
tpaul

1

Bu bana daha iyi çalıştı çünkü üretici ve ürün adı hakkında özel bilgiler verdi.

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

Dell sunucusundaki çıktı:

Manufacturer: Dell Inc.
Product Name: PowerEdge C5220

Virtualbox VM'deki çıktı:

Manufacturer: innotek GmbH
Product Name: VirtualBox

KVM / QEMU’da çıkış:

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

Bu, sunucuları daha iyi tanımlamak için bunları çözümleyebilen komut dosyaları için harikadır ... ancak altyapınızı Chef kullanıyorsanız Virtualization -> system, chef sunucusundaki düğüm özniteliğini kontrol edebilirsiniz .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.