Seite 1 von 1

unter Linux ermitteln, ob man sich in einer VM befindet

Verfasst: 14.01.2009, 10:07
von jl_0815
Hallo.

Ich spiele gerade mit der automatischen Installation von SLES (Autoyast) rum und möchte nach der Installation per Script ermitteln, ob sich die SLES-Installation in einer virt. Maschine befindet. Falls ja, sollen die VMware-Tools von einem HTTP-Server gezogen und installiert werden. Gibt es eine Möglichkeit (anhand der Hardware oder so) sicher zu ermitteln, ob sich die Installation in einer VM befindet?

MfG
JL

Verfasst: 14.01.2009, 11:43
von Mystefix
hi,

du kannst mit folgendem Befehl prüfen, ob sich die Installation auf einer virtuellen Maschine befindet:

lspci | grep VMware

bei einer virtuellen Maschine sollte o.g Befehl folgendes ausgeben:

00:0f.0 VGA compatible controller: VMware Inc [VMware SVGA II] PCI Display Adapter

Verfasst: 14.01.2009, 13:08
von jl_0815
Danke für die schnelle Antwort.
Hatte es derweil schon über eine Abfrage auf die MAC-Adresse gelöst.
Dort sind ja die ersten 3 Stellen die Herstellerkennung.
Aber mit lspci gefällt's mir noch besser.

Hier die komplette Abfrage, falls das mal jemand braucht:

Code: Alles auswählen

echo '=====Pruefe auf virtuelle Maschine==============='
if `lspci | grep -i vmware > /dev/null` ;
echo ''
        then
          echo '=====Hole VMwareTools============================'
          wget http://XXX.XXX.XXX.XXX/autoyast/VMwareTools.rpm
          echo ''
          echo '=====Installiere VMwareTools====================='
          rpm -iv VMwareTools.rpm
          echo ''
          echo '=====Konfiguriere VMwareTools===================='
          vmware-config-tools.pl -d
          echo ''
          echo '=====Passe GRUB-Konfig an========================'
          sed -i '/kernel/s/$/ clock=pmtmr/' /boot/grub/menu.lst
          echo ''
        else
          echo '=====Dies ist keine VMware-VM===================='
          echo ''
fi

echo '=====Loesche temporaere Dateien=================='
rm ./VMwareTools.rpm


MfG JL