SYSTEMD-DETECT-VIRT(1)

BEZEICHNUNG
systemd-detect-virt - Erkennung der Ausführung in einer virtualisierten Umgebung

ÜBERSICHT

systemd-detect-virt [OPTIONEN…]

BESCHREIBUNG

systemd-detect-virt erkennt die Ausführung in einer virtualisierten Umgebung. Es identifiziert die Virtualisierungstechnik und kann zwischen vollständiger Maschinenvirtualisierung und Container-Virtualisierung unterscheiden. Systemd-detect-virt beendet sich mit einem Rückgabewert 0 (Erfolg), falls eine Virtualisierungstechnik erkannt wurde und einem von Null verschiedenen Wert (Fehler) anderenfalls. Standardmäßig wird jeder Virtualisierungstyp erkannt und die Optionen --container und --vm können zur Einschränkungen der erkannten Virtualisierungstypen verwandt werden.

Bei Ausführung ohne --quiet wird eine kurze Kennzeichnung für die erkannte Virtualisierungstechnik ausgegeben. Die nachfolgenden Techniken werden derzeit erkannt:

Tabelle 1. Bekannte Virtualisierungstechniken (sowohl VM, d.h. komplette Hardware-Virtualisierung und Container-, d.h. gemeinsame Kernel-Virtualisierung)
Typ | Kennung | Produkt
VM | qemu | Qemu-Software-Virtualisierung, ohne KVM
 | kvm | Linux KVM-Kernel virtuelle Maschine in Kombination mit QEMU. Nicht für andere Virtualisierer verwandt, die die KVM-Schnittstelle verwenden, wie Oracle VirtualBox oder Amazon EC2 Nitro, siehe unten.
 | amazon | Amazon EC2 Nitro mittels Linux KVM
 | zvm | S390 z/VM
 | vmware | VMware Workstation oder Server und zugehörige Produkte
 | microsoft | Hyper-V, auch als Viridian oder Windows Server Virtualization bekannt
 | oracle | Oracle VM VirtualBox (historisch von Innotek und Sun Microsystems vermarktet), für alte und KVM-Hypervisoren
 | powervm | IBM PowerVM Hypervisor — kommt als Firmware mit einigen IBM-POWER-Servern
 | xen | Xen Hypervisor (nur domU, nicht dom0)
 | bochs | Bochs Emulator
 | uml | User-mode Linux
 | parallels | Parallels Desktop, Parallels Server
 | bhyve | bhyve, FreeBSD-Hypervisor
 | qnx | QNX-Hypervisor
 | acrn | ACRN-Hypervisor[1]
 | apple | Apple Virtualisierungsrahmenwerk[2]
 | sre | LMHS-SRE-Hypervisor[3]
 | google | Googles Berechnungsmaschine[1]
Container | openvz | OpenVZ/Virtuozzo
 | lxc | Linux-Container-Implementierung von LXC
 | lxc-libvirt | Linux-Container-Implementierung von Libvirt
 | systemd-nspawn | Systemds minimale Container-Implementierung, siehe systemd-nspawn(1)
 | docker | Docker Container-Verwalter
 | podman | Podman[5] Container-Verwalter
 | rkt | Rkt-App-Container-Laufzeitumgebung
 | wsl | Windows Subsystem für Linux[6]
 | PRoot | proot[7] Chroot/Bind-Einhängungs-Nachbildung im Anwendungsraum
 | pouch | Pouch[8] Container-Antriebssystem

Falls mehrere Virtualisierungslösungen verwandt werden, wird nur die »innerste« erkannt und identifiziert. Das bedeutet, falls sowohl Maschinen- als auch Container-Virtualisierung zusammen benutzt werden, wird nur Letztere identifiziert (falls nicht --vm übergeben wird).

Windows Subsystem for Linux ist kein Linux-Container, sondern eine Umgebung zur Ausführung von Linux-Anwendungsprogrammen oberhalb des Windows-Kernels mittels einer Linux-kompatiblen Schnittstelle. WSL wird für praktische Zwecke als Container kategorisiert. Mehrere WSL-Umgebungen benutzen den gleichen Kernel und Dienste sollten sich im Allgemeinen so verhalten, wie sie es in einem Container täten.

Bei Ausführung mit --cvm wird die vertrauliche virtuelle-Maschinen-Technik anstelle der virtuellen-Maschinen-Technik angezeigt, falls vorhanden. Die nachfolgenden Techniken werden derzeit erkannt:

Tabelle 2. Bekannte vertrauliche Virtualisierungstechniken
Arch | Kennung | Technik
x86_64 | sev | AMD Secure Encrypted Virtualization
 | sev-es | AMD Secure Encrypted Virtualization - Encrypted State
 | sev-snp | AMD Secure Encrypted Virtualization - Secure Nested Paging
 | tdx | Intel Trust Domain Extensions
S390x | protvirt | IBM Protected Virtualization (Secure Execution)
Arm64 | cca | Vertrauenswürdige ARM-Rechner-Architektur

OPTIONEN

Die folgenden Optionen werden verstanden:

-c, --container
    Erkennt nur Container-Virtualisierung (d.h. gemeinsame Kernel-Virtualisierung).

-v, --vm
    Erkennt nur Hardware-Virtualisierungen.

-r, --chroot
    Erkennt, ob der Aufruf in einer chroot(2)-Umgebung erfolgte. In diesem Modus wird keine Ausgabe geschrieben, aber der Rückgabewert zeigt an, ob der Prozess in einer chroot()-Umgebung aufgerufen wurde oder nicht.

    Hinzugefügt in Version 228.

--private-users
    Erkennt, ob der Aufruf in einem Benutzer-Namensraum erfolgte. In diesem Modus wird keine Ausgabe geschrieben, aber der Rückgabewert zeigt an, ob der Prozess innerhalb eines Benutzernamensraums aufgerufen wurde oder nicht. Siehe user_namespaces(7) für weitere Informationen.

    Hinzugefügt in Version 232.

--cvm
    Erkennt, ob der Aufruf in einer vertraulichen virtuellen Maschine erfolgte. Das Ergebnis dieser Ermittlung kann zur Deaktivierung von Funktionalitäten verwandt werden, die in vertraulichen VMs nicht benutzt werden sollten. Dies darf nicht zur Veröffentlichung sicherheitssensibler Informationen führen. Letztere dürfen nur nach der Bescheinigung der vertraulichen Umgebung veröffentlicht werden.

    Hinzugefügt in Version 254.

-q, --quiet
    Unterdrückt die Ausgabe der Kennung der Virtualisierungstechnik.

--list
    Gibt alle derzeit bekannten und erkennbaren Container- und VM-Umgebungen aus.

    Hinzugefügt in Version 239.

--list-cvm
    Gibt alle derzeit bekannten und erkennbaren vertraulichen Virtualisierungstechniken aus.

    Hinzugefügt in Version 254.

-h, --help
    Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version
    Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

EXIT-STATUS

Falls eine Virtualisierungstechnik erkannt wurde, wird 0 zurückgeliefert, andernfalls ein anderer Code.

SIEHE AUCH

systemd(1), systemd-nspawn(1), chroot(2), namespaces(7)

ANMERKUNGEN

1.  ACRN-Hypervisor
    https://projectacrn.org

2.  Apple Virtualisierungsrahmenwerk
    https://developer.apple.com/documentation/virtualization

3.  LMHS-SRE-Hypervisor
    https://www.lockheedmartin.com/en-us/products/Hardened-Security-for-Intel-Processors.html

4.  Googles Berechnungsmaschine
    https://cloud.google.com/compute?hl=de

5.  Podman
    https://podman.io

6.  Windows Subsystem für Linux
    https://docs.microsoft.com/en-us/windows/wsl/about

7.  PRoot
    https://proot-me.github.io/

8.  Pouch
    https://github.com/alibaba/pouch

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.