Aus Linux-Magazin 10/2021

Aus dem Alltag eines Sysadmin: Virtuell oder physisch?

Für das Schreiben hardwarenaher Skripte muss der Admin wissen, ob er gerade auf einer physischen oder einer virtuellen Maschine unterwegs ist. Charly behilft sich da mit einigen pfiffigen Tricks.

Inhalt

68 SSH-Verbindungen

SSH-Verbindungen richtig absichern

Von den Systemen, auf denen ich arbeite, sind etwa 90 Prozent virtualisiert und 10 Prozent klassische Hardware-Server. Für viele Arbeiten macht das keinen Unterschied, aber wenn ich Skripte schreibe, die hardwarenahe Funktionen aufrufen oder ändern, benötige ich diese Information.

Habe ich auf dem System Root-Rechte und darf auch Software nachinstallieren, lässt sich das Problem sehr schnell lösen. Ich installiere entweder Facter [1] oder Virt-what [2]. Facter liefert umfangreiche Informationen zur Hardware des Systems, ähnlich wie Lshw, und ist für die Beantwortung der Frage “virtuell oder nicht” eigentlich überdimensioniert. Der Aufruf von »facter virtual« liefert als Antwort die Virtualisierungsplattform, also etwa »vmware« oder »kvm«. Dasselbe Ergebnis liefert der Aufruf »virt-what«. Wenn ich die Mächtigkeit von Facter nicht anderweitig benötige, ziehe ich das schlankere Virt-what vor.

Besitze ich zwar Root-Rechte, darf aber keine Software installieren, etwa wegen eingeschränkter Repositories, gibt es eine andere Möglichkeit: Das Kommando »dmidecode -t system« liefert mir die gewünschte Auskunft (Abbildung 1).

Abbildung 1: Über Dmidecode finden Sie schnell heraus, ob Sie auf einer VM unterwegs sind.

Abbildung 1: Über Dmidecode finden Sie schnell heraus, ob Sie auf einer VM unterwegs sind.

Was aber, wenn ich auf dem System keine Root-Rechte habe? Auch dafür gibt es Lösungen, sogar mehrere. Die erste ist das Kommando »dmesg | grep DMI«. Auf einem VMware-Gast sieht die Ausgabe so aus wie in der zweiten Zeile von Listing 1. Führe ich dasselbe Kommando auf einem physischen Server aus, gibt es an dieser Stelle meist Informationen zum Server-Modell (Zeile 4).

Listing 1

Virtuell oder physisch?

$ dmesg | grep DMI
[    0.000000] DMI: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 05/28/2020
[...]
[    0.000000] DMI: HP ProLiant DL320e Gen8, BIOS J05 12/10/2012
$ cat /proc/scsi/scsi
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: QEMU  Model: QEMU HARDDISK  Rev: 2.5+
  Type:   Direct-Access               ANSI  SCSI revision: 05
[...]
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA  Model: SanDisk SSD PLUS  Rev: 00RL
  Type:   Direct-Access                 ANSI  SCSI revision: 05

Eine weitere Möglichkeit bietet »cat /proc/scsi/scsi«. Auf einem virtualisierten System bekomme ich eine Ausgabe wie in den Zeilen 7 bis 10 von Listing 1. Das physische System dagegen antwortet wieder mit Informationen zur Hardware (ab Zeile 12).

Es gibt noch eine ganze Reihe weiterer Möglichkeiten, aber wann immer es technisch möglich ist, benutze ich Virt-what: Schneller und einfacher geht es nicht. (jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben