GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So überprüfen Sie, ob ein Linux-System eine physische oder virtuelle Maschine ist

Als Linux-Administrator fragen Sie sich vielleicht manchmal, ob Sie an einer physischen oder einer virtuellen Maschine arbeiten. Meistens werden Sie remote auf Ihre Server zugreifen und diese verwalten. Möglicherweise haben Sie nicht immer physischen Zugriff auf Ihre Server und wissen möglicherweise nicht einmal, wo sich der Server befindet. Es ist jedoch möglich, mit einigen Linux-Dienstprogrammen zu überprüfen, ob Ihr Linux-System eine physische oder virtuelle Maschine ist. Diese Anleitung listet alle Möglichkeiten auf, um zu überprüfen, ob das Linux-System, an dem Sie arbeiten, ein physischer Server oder ein virtueller Server ist.

Überprüfen Sie, ob ein Linux-System eine physische oder virtuelle Maschine ist

Es gibt viele Möglichkeiten herauszufinden, ob ein System physisch oder virtuell ist. Folgende Methoden sind mir derzeit bekannt. Ich werde aktualisieren, wenn ich in den kommenden Tagen andere Wege finde.

Methode 1 - Verwenden des Dmidecode-Dienstprogramms

Der einfachste Weg, um herauszufinden, ob wir an einer virtuellen oder physischen Maschine arbeiten, ist die Verwendung von dmidecode  Nützlichkeit. Dmidecode, DMI-Tabellendecoder, wird verwendet, um die Hardwarekomponenten Ihres Systems sowie andere nützliche Informationen wie Seriennummern und BIOS-Revisionen zu finden.

Dmidecode ist bei den meisten Linux-Distributionen vorinstalliert. Für den Fall, dass es noch nicht installiert ist, können Sie es mit dem Paketmanager Ihrer Distribution installieren. Angenommen, der folgende Befehl installiert dmidecode in DEB-basierten Systemen wie Ubuntu, Linux Mint.

$ sudo apt-get install dmidecode

Führen Sie nach der Installation von Dmidecode den folgenden Befehl aus, um herauszufinden, ob Ihr System eine physische oder virtuelle Maschine ist:

$ sudo dmidecode -s system-manufacturer

Wenn es sich um ein physisches System handelt, erhalten Sie eine Ausgabe wie die folgende.

Dell Inc.

Wenn es sich um ein mit Virtualbox erstelltes virtuelles System handelt, erhalten Sie die folgende Ausgabe:

innotek GmbH

Für diejenigen, die sich fragen,innotek ist ein in Deutschland ansässiges Softwareunternehmen, das eine PC-Virtualisierungssoftware namens VirtualBox entwickelt .

Wenn es sich um ein mit KVM/QEMU erstelltes virtuelles System handelt, lautet die Ausgabe:

QEMU

Wie Sie in der obigen Ausgabe sehen, zeigt dmidecode bei einem physischen System den Namen des Herstellers (z. B. Dell Inc.) an. Wenn es sich um ein virtuelles System handelt, wird die Virtualisierungssoftware/-technologie (z. B. VirtualBox oder QEMU) angezeigt.

Außerdem können Sie mit diesem Befehl prüfen, ob es sich um ein physisches oder virtuelles System handelt.

$ sudo dmidecode | grep Product

Beispielausgabe:

[Physical system]

Product Name: 01HXXJ
Product Name: Inspiron N5050

[Virtual system on VirtualBox]

Product Name: VirtualBox
Product Name: VirtualBox

[Virtual system on KVM/QEMU]

Product Name: Standard PC (Q35 + ICH9, 2009)

Ein weiterer Befehl, um herauszufinden, ob es sich um ein physisches oder virtuelles System handelt, ist:

$ sudo dmidecode -s system-product-name

Beispielausgabe:

[Physical system]

Inspiron N5050

[Virtual system on VirtualBox]

VirtualBox

[Virtual system on KVM/QEMU]

Standard PC (Q35 + ICH9, 2009)

Noch ein weiterer dmidecode-Befehl, um den Typ des entfernten Systems zu finden, ist:

$ sudo dmidecode | egrep -i 'manufacturer|product'

Beispielausgabe:

[Physical system]

 Manufacturer: Intel 
 Manufacturer: Sanyo 
 Manufacturer: Not Specified
 Manufacturer: Dell Inc.
 Product Name: 01HXXJ
 Manufacturer: Dell Inc.
 Manufacturer: Dell Inc.
 Product Name: Inspiron N5050
 Manufacturer: 014F

[Virtual system on VirtualBox]

 Manufacturer: innotek GmbH
 Product Name: VirtualBox
 Manufacturer: Oracle Corporation
 Product Name: VirtualBox
 Manufacturer: Oracle Corporation

[Virtual system on KVM/QEMU]

Manufacturer: QEMU
Product Name: Standard PC (Q35 + ICH9, 2009)
Manufacturer: QEMU
Manufacturer: QEMU
Manufacturer: QEMU
Manufacturer: QEMU

Und ein weiterer dmidecode-Befehl soll das gleiche Ziel erreichen:

$ sudo dmidecode | egrep -i 'vendor'

Beispielausgabe:

[Physical system]

Vendor: Dell Inc.

[Virtual system on VirtualBox]

Vendor: innotek GmbH

[Virtual system on KVM/QEMU]

Vendor: EFI Development Kit II / OVMF

Methode 2 – Verwenden des Facter-Dienstprogramms

Faktor ist ein Befehlszeilendienstprogramm zum Sammeln und Anzeigen von Systeminformationen. Im Gegensatz zu Dmidecode ist Facter nicht standardmäßig vorinstalliert. Abhängig von der von Ihnen verwendeten Linux-Distribution müssen Sie es möglicherweise wie unten gezeigt installieren.

Unter Arch Linux, Manjaro Linux:

$ sudo pacman -S facter

Bei Fedora:

$ sudo dnf install facter

In CentOS, RHEL:

$ sudo yum install epel-release
$ sudo yum installl facter

Unter openSUSE:

$ sudo zypper install facter

Führen Sie nach der Installation den folgenden Befehl aus, um zu überprüfen, ob es sich bei dem System um eine physische oder virtuelle Maschine handelt:

$ facter 2> /dev/null | grep virtual

Wenn dieser Befehl nicht funktioniert, versuchen Sie es mit sudo-Berechtigungen:

$ sudo facter 2> /dev/null | grep virtual

Beispielausgabe:

[Physical system]

is_virtual => false
virtual => physical

[Virtual system on VirtualBox and KVM/QEMU]

is_virtual => true
virtual => kvm

Verwenden Sie alternativ den folgenden Befehl:

$ facter virtual

Oder,

$ sudo facter virtual

Wenn es sich um eine physische Maschine handelt, lautet die Ausgabe:

physical

Wenn es sich um eine virtuelle Maschine handelt, sehen Sie eine Ausgabe wie unten.

kvm

Methode 3 - Verwendung des lshw-Dienstprogramms

Die lshw Utility ist ein kleines Befehlszeilenprogramm, das die detaillierten Hardwareinformationen eines Unix-ähnlichen Systems anzeigt. Es zeigt alle Hardwaredetails an, einschließlich Speicherkonfiguration, Firmware-Version, Mainboard-Konfiguration, CPU-Version und -Geschwindigkeit, Cache-Konfiguration, Busgeschwindigkeit usw.

Bei einigen Linux-Distributionen ist lshw vorinstalliert. Wenn es noch nicht installiert ist, können Sie es wie unten gezeigt installieren.

In Arch Linux und Derivaten:

$ sudo pacman -S lshw

Bei Fedora:

$ sudo dnf install lshw

In RHEL und Derivaten wie CentOS, Scientific Linux:

$ sudo yum install epel-release
$ sudo yum install lshw

Unter Debian, Ubuntu, Linux Mint:

$ sudo apt-get install lshw

Unter SUSE/openSUSE:

$ sudo zypper in lshw

Führen Sie nach der Installation von lshw den folgenden Befehl aus, um herauszufinden, ob Ihr System entweder physisch oder virtuell ist:

$ sudo lshw -class system

Beispielausgabe:

[Physical system]

sk 
 description: Portable Computer
 product: Inspiron N5050 (To be filled by O.E.M.)
 vendor: Dell Inc.
 version: Not Specified
 serial: JSQ9PR1
 width: 4294967295 bits
 capabilities: smbios-2.6 dmi-2.6 smp vsyscall32
 configuration: boot=normal chassis=portable sku=To be filled by O.E.M. uuid=44454C4C-5300-1051-8039-CAC04F505231

[Virtual system on VirtualBox]

ubuntuserver 
 description: Computer
 product: VirtualBox
 vendor: innotek GmbH
 version: 1.2
 serial: 0
 width: 64 bits
 capabilities: smbios-2.5 dmi-2.5 vsyscall32
 configuration: family=Virtual Machine uuid=78B58916-4074-42E2-860F-7CAF39B5E6F5

[Virtual system on KVM/QEMU]

centos8uefi.ostechnix.lan   
    description: Computer
    product: Standard PC (Q35 + ICH9, 2009)
    vendor: QEMU
    version: pc-q35-4.2
    width: 64 bits
    capabilities: smbios-2.8 dmi-2.8 smp vsyscall32
    configuration: boot=normal uuid=C40041DE-2E63-094C-8DCF-BBDE29170268
  *-pnp00:00
       product: PnP device PNP0b00
       physical id: 1
       capabilities: pnp
       configuration: driver=rtc_cmos

Empfohlene Lektüre:

  • So finden Sie Hardwarespezifikationen unter Linux
  • So finden Sie den maximal unterstützten RAM in Linux heraus

Methode 4 – Verwenden des Dienstprogramms dmesg

Den Typ des Systems finden wir mit dmesg Nützlichkeit. dmesg wird verwendet, um den Ringpuffer des Kernels zu untersuchen oder zu steuern.

Um zu überprüfen, ob Ihr Linux-System physisch oder virtuell ist, führen Sie einfach Folgendes aus:

$ sudo dmesg | grep "Hypervisor detected"

Wenn Ihr System physisch ist, sehen Sie keine Ausgabe.

Wenn Ihr System eine virtuelle Maschine ist, sehen Sie eine Ausgabe wie unten.

[ 0.000000] Hypervisor detected: KVM

Methode 5 – Verwendung des Befehls hostnamectl

Mit hostnamectl können wir herausfinden, ob unser System entweder virtuell oder physisch ist Befehl. Es erfordert systemd zu arbeiten.

$ hostnamectl status

Oder,

$ hostnamectl

Beispielausgabe:

[Physical system]

Static hostname: sk
 Icon name: computer-laptop
 Chassis: laptop
 Machine ID: 84e3c8e37e114ac9bc9f69689b49cfaa
 Boot ID: 19cf3572e1634e778b5d494d9c1af6e9
 Operating System: Arch Linux
 Kernel: Linux 4.10.13-1-ARCH
 Architecture: x86-64

[Virtual system on VirtualBox]

Static hostname: ubuntuserver
 Icon name: computer-vm
 Chassis: vm
 Machine ID: 2befe86cf8887ba098b509e457554beb
 Boot ID: 8021c02d65dc46a1885afb25dddcf18c
 Virtualization: oracle
 Operating System: Ubuntu 16.04.1 LTS
 Kernel: Linux 4.4.0-78-generic
 Architecture: x86-64

[Virtual system on KVM/QEMU]

Static hostname: centos8uefi.ostechnix.lan
Icon name: computer-vm
Chassis: vm
Machine ID: de4100c4632e4c098dcfbbde29170268
Boot ID: 6136783bb9c241d08c8901aeecc7c30d
Virtualization: kvm
Operating System: CentOS Linux 8 (Core)
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-80.el8.x86_64
Architecture: x86-64

Methode 6 – Verwenden von systemd-detect-virt

Die systemd-detect-virt Tool erkennt die Virtualisierungstechnologie und kann die vollständige Maschinenvirtualisierung von der Hardware- oder Containervirtualisierung unterscheiden.

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob das System physisch oder virtuell ist:

$ systemd-detect-virt

Beispielausgabe:

[Physical machine]

none

[Virtual machine on VirtualBox]

oracle

[Virtual machine on KVM/QEMU]

KVM

Methode 7 – Virt-what-Skript verwenden

Das virt-was ist ein kleines Shell-Skript, das bei Red Hat entwickelt wurde, um festzustellen, ob wir in einer virtuellen oder physischen Maschine ausgeführt werden. virt-what ist für alle gängigen Linux-Distributionen wie RHEL, Fedora, CentOS, Debian, Ubuntu, Arch Linux (AUR) paketiert.

In Arch Linux können Sie es von AUR aus mit beliebigen AUR-Helfern installieren, zum Beispiel Yay .

$ yay -S virt-what

In RHEL, Fedora, CentOS:

$ sudo yum install virt-what

Unter Debian, Ubuntu:

$ sudo apt-get install virt-what

Führen Sie nach der Installation den folgenden Befehl aus, um festzustellen, ob Ihr System entweder physisch oder virtuell ist:

$ sudo virt-what

Wenn nichts gedruckt wird und das Skript mit Code 0 beendet wird (kein Fehler), dann bedeutet dies, dass es sich entweder um ein physisches System oder um eine Art virtuelle Maschine handelt, von der wir nichts wissen oder die wir nicht erkennen können.

Wenn Ihr System virtuell ist, sehen Sie eine Ausgabe wie unten.

virtualbox
kvm

Weitere Einzelheiten finden Sie auf der Homepage des Projekts.

  • http://people.redhat.com/~rjones/virt-what/

Methode 8 - Verwenden von imvirt-Skript

Die imvirt ist noch ein weiteres kleines Perl Skript, mit dessen Hilfe Sie erkennen können, ob wir auf einer virtuellen Maschine ausgeführt werden.

In Arch Linux können Sie es mit Yay von AUR installieren Hilfsprogramm.

$ yay -S imvirt

Unter Debian, Ubuntu, Linux Mint:

$ sudo apt-get install imvirt

Führen Sie nach der Installation den folgenden Befehl aus, um festzustellen, ob Ihr System entweder physisch oder virtuell ist:

$ sudo imvirt

Wenn Ihr System physisch ist, wäre die Ausgabe:

Physical

wenn das System virtuell ist, sehen Sie:

KVM

Weitere Einzelheiten finden Sie auf der Homepage des Projekts.

  • http://micky.ibh.net/~liske/imvirt.html

Verwandte Lektüre:

  • So überprüfen Sie, ob ein Linux-System 32-Bit oder 64-Bit ist
  • So finden Sie heraus, ob eine CPU die Virtualisierungstechnologie (VT) unterstützt

Und das ist alles für jetzt. Wenn Sie andere Möglichkeiten kennen, um herauszufinden, ob die Linux-Box physisch oder virtuell ist, teilen Sie uns dies im Kommentarbereich mit. Wir werden den Leitfaden entsprechend prüfen und aktualisieren.


Linux
  1. So entfernen Sie KVM-basierte virtuelle Maschinen unter Redhat Linux

  2. So überprüfen Sie die Betriebssystem- und Linux-Version

  3. So überprüfen Sie, ob ein Linux-System 32-Bit oder 64-Bit ist

  4. Überprüfen Sie die Betriebszeit auf Ubuntu Linux Server – wie geht das?

  5. Wie überprüfe ich, ob das Linux-System auf einem physischen System oder einer virtuellen Maschine ausgeführt wird?

So überprüfen Sie, ob ein Port auf einem Remote-Linux-System geöffnet ist

So überprüfen/reparieren Sie das Linux-Dateisystem beim Booten

So überprüfen und reparieren Sie ein Dateisystem in RHEL Linux

Verwendung von Tails Linux OS in VirtualBox Virtual Machine

So überprüfen Sie den Systemneustartverlauf und die Startzeit in Linux

So überprüfen Sie Ihre Serverlast im Linux-System