SYSTEMD-VMSPAWN(1) | systemd-vmspawn | SYSTEMD-VMSPAWN(1) |
BEZEICHNUNG¶
systemd-vmspawn - Ein Betriebssystem in einer virtuellen Maschine erzeugen
ÜBERSICHT¶
systemd-vmspawn [OPTIONEN…] [ARG…]
BESCHREIBUNG¶
systemd-vmspawn kann zum Starten einer virtuellen Maschine aus einem Betriebssystemabbild verwandt werden. Es ist auf viele Arten ähnlich zu systemd-nspawn(1), startet aber eine vollständige virtuelle Maschine anstatt Namensräume zu verwenden.
Mittels der nativen Socket-Übergabeschnittstelle (siehe sd_listen_fds(3) zu Details über das genau verwandte Protokoll und die Reihenfolge, in der Dateideskriptoren übergeben werden) können Dateideskriptoren für /dev/kvm und /dev/vhost-vsock übergeben werden. Diese Dateideskriptoren müssen mit den Namen »kvm« bzw. »vhost-vsock« übergeben werden.
Hinweis: Auf Systemen, die von Ubuntu/Debian abgeleitet sind, muss der Benutzer in der Gruppe »kvm« sein, damit er die VSOCK-Optionen verwenden kann und systemd-vmspawn funktioniert.
OPTIONEN¶
Überschüssige Argumente werden als zusätzliche Kernelbefehlszeilenargumente mittels SMBIOS weitergegeben.
Die folgenden Optionen werden verstanden:
-q, --quiet
Hinzugefügt in Version 256.
Abbildoptionen¶
-D, --directory=
Es muss entweder --directory= oder --image= angegeben werden. Falls keines angegeben ist, wird --directory=. angenommen.
Hinweis: Falls Sie ein Verzeichnis einhängen, das einem anderen Benutzer (nicht root) gehört, könnte die Option --private-users= notwendig sein, um in den Subuid-Namensraum des Benutzer abzubilden. Später folgt ein Beispiel, wie /etc/subuid dafür verwandt werden kann.
Hinzugefügt in Version 256.
-i, --image=
Hinzugefügt in Version 255.
Rechnerkonfiguration¶
--cpus=CPUS
Hinzugefügt in Version 255.
--ram=BYTE
Hinzugefügt in Version 255.
--kvm=LOGISCH
Hinzugefügt in Version 255.
--vsock=LOGISCH
Hinzugefügt in Version 255.
--vsock-cid=CID
Hinzugefügt in Version 255.
--tpm=LOGISCH
Hinzugefügt in Version 256.
--tpm-state=PFAD|auto|off
Hinzugefügt in Version 258.
--linux=PFAD
Hinzugefügt in Version 256.
--initrd=PFAD
--initrd= kann mehrfach angegeben werden und Vmspawn wird sie zusammenführen.
Hinzugefügt in Version 256.
-n, --network-tap
Beachten Sie: Für die Verwendung von TAP-Vernetzung werden Root-Rechte benötigt. Zusätzlich muss systemd-networkd(8) laufen und auf dem Hauptrechner korrekt eingerichtet sein, um die Schnittstelle bereitzustellen. Die relevante ».network«-Datei kann unter /usr/lib/systemd/network/80-vm-vt.network gefunden werden.
Hinzugefügt in Version 255.
--network-user-mode
Hinzugefügt in Version 255.
--firmware=PFAD
Hinzugefügt in Version 256.
--discard-disk=LOGISCH
Hinzugefügt in Version 256.
--secure-boot=LOGISCH
Falls diese Option nicht angegeben ist, wird die erste erkannte Firmware verwandt. Falls diese Option auf »yes« gesetzt ist, dann wird die erste Firmware mit Unterstützung für sicheren Systemstart ausgewählt. Falls »no« angegeben ist, dann wird die erste Firmware ohne sicheren Systemstart ausgewählt.
Hinzugefügt in Version 255.
--grow-image=BYTE, -G BYTE
Hinzugefügt in Version 258.
--smbios11=ZEICHENKETTE, -s ZEICHENKETTE
Hinzugefügt in Version 258.
--notify-ready=
Defaults to true. (Note that this is unlike the option of the same name to systemd-vmspawn(1) that defaults to false.)
Hinzugefügt in Version 258.
Systemidentitätsoptionen¶
-M, --machine=
Hinzugefügt in Version 255.
--uuid=
Hinzugefügt in Version 256.
Eigenschaftsoptionen¶
-S, --slice=
Hinzugefügt in Version 258.
--property=
Hinzugefügt in Version 258.
--register=
Beachten Sie: Root-Rechte werden für diese Option benötigt, da das Registrieren mit systemd-machined(8) privilegierte D-Bus-Methodenaufrufe benötigt.
Hinzugefügt in Version 256.
Benutzer-Namensraum-Optionen¶
--private-users=UID_VERSCHUB[:UID_BEREICH]
Falls eine oder zwei, durch Doppelpunkt getrennte Zahlen angegeben werden, wird Benutzer-Namensraumnutzung eingeschaltet. UID_VERSCHUB legt die erste auf dem Hauptrechner abzubildende UID/GID fest, UID_BEREICH ist optional und gibt die Anzahl der auf der Hauptmaschine an die virtuelle Maschine zuzuweisenden UIDs/GIDs an. Falls UID_BEREICH ausgelassen wird, werden 65536 UIDs/GIDs zugewiesen.
Wenn Benutzernamensräume verwandt werden, wird der jeder virtuellen Maschine zugewiesene GID-Bereich so gewählt, dass er immer identisch zum UID-Bereich ist.
Hinzugefügt in Version 256.
Einhänge-Optionen¶
--bind=PFAD, --bind-ro=PFAD
Hinzugefügt in Version 256.
--extra-drive=PFAD
Hinzugefügt in Version 256.
Integrationsoptionen¶
--forward-journal=DATEI|VERZ
Hinzugefügt in Version 256.
--pass-ssh-key=LOGISCH
Die erstellten Schlüssel sind kurzlebig. Das bedeutet, dass sie nur für den aktuellen Aufruf von systemd-vmspawn gültig sind und typischerweise nicht dauerhaft bestehen.
Hinzugefügt in Version 256.
--ssh-key-type=TYP
Standardmäßig werden »ed25519«-Schlüssel erstellt, allerdings könnten »rsa«-Schlüssel auch nützlich sein, falls die VM eine bessonders alte Version von sshd(8) verwendet.
Hinzugefügt in Version 256.
Ein-/Ausgabe-Optionen¶
--console=MODUS
Hinzugefügt in Version 256.
--background=FARBE
Hinzugefügt in Version 256.
Zugangsdaten¶
--load-credential=KENNUNG:PFAD, --set-credential=KENNUNG:WERT
Um Binärdaten in die Zugangsdaten für --set-credential= einzubetten, verwenden Sie C-artige Maskierung (d.h. »\n« für einen eingebetteten Zeilenumbruch oder »\x00«, um ein Nullbyte (NUL) einzubetten). Beachten Sie, dass die aufrufende Shell die Maskierungen bereits einmal entfernt haben könnte, daher könnte eine doppelte Maskierung notwendig sein!
Hinzugefügt in Version 255.
Andere¶
--no-pager
-h, --help
--version
--no-ask-password
UMGEBUNGSVARIABLEN¶
$SYSTEMD_LOG_LEVEL
$SYSTEMD_LOG_COLOR
Diese Einstellung ist nur nützlich, falls die Nachrichten direkt auf das Terminal geschrieben werden, da journalctl(1) und andere Werkzeuge, die Protokolle anzeigen, selbständig Nachrichten gemäß ihrer Protokollierungsstufe einfärben.
$SYSTEMD_LOG_TIME
Diese Einstellung ist nur nützlich, falls die Nachrichten direkt auf das Terminal oder in eine Datei geschrieben werden, da journalctl(1) und andere Werkzeuge, die Protokolle anzeigen, selbständig Zeitstempel basierend auf ihren Metadaten den Nachrichten anhängen.
$SYSTEMD_LOG_LOCATION
Beachten Sie, dass der Protokollierort sowieso oft als Metadaten zu den Journal-Einträgen angehängt ist. Die Aufnahme in den Nachrichtentext kann bei der Fehlersuche in Programmen dennoch praktisch sein.
$SYSTEMD_LOG_TID
Beachten Sie, dass diese Informationen sowieso als Metadaten an Journal-Einträge angehängt wird. Die Aufnahme direkt im Nachrichtentext kann aber trotzdem bei der Fehlersuche in Programmen praktisch sein.
$SYSTEMD_LOG_TARGET
$SYSTEMD_LOG_RATELIMIT_KMSG
$SYSTEMD_PAGER, $PAGER
Beachten Sie: Falls $SYSTEMD_PAGERSECURE nicht gesetzt ist, können $SYSTEMD_PAGER und $PAGER nur zum Deaktivieren des Seitenanzeigeprogramms (mit »cat« oder »«) verwandt werden und werden ansonsten ignoriert.
$SYSTEMD_LESS
Benutzer könnten insbesondere zwei Optionen ändern wollen:
K
Falls der Wert von $SYSTEMD_LESS kein »K« enthält und less das aufgerufene Textanzeigeprogramm ist, wird Strg+C durch das Programm ignoriert und muss durch das Textanzeigeprogramm selbst gehandhabt werden.
X
Beachten Sie, dass das Setzen der regulären Umgebungsvariablen $LESS keine Auswirkungen auf die Ausführung von less(1) durch systemd(1)-Werkzeuge hat.
Siehe less(1) für weitere Ausführungen.
$SYSTEMD_LESSCHARSET
Beachten Sie, dass das Setzen der regulären Umgebungsvariablen $LESSCHARSET keine Auswirkungen auf die Ausführungen von less(1) durch systemd(1)-Werkzeuge hat.
$SYSTEMD_PAGERSECURE
Diese Option akzeptiert ein logisches Argument. Ist es auf »true« gesetzt, wird der »Sichere Modus« des Seitenanzeigeprogramms aktiviert. Im »Sicheren Modus« wird LESSSECURE=1 beim Aufruf des Seitenanzeigeprogramms gesetzt. Dies weist das Seiteanzeigeprogramm an, Befehle zum Öffnen oder Erstellen von neuen Dateien sowie das Starten von Subprozessen zu deaktivieren. Derzeit ist nur von less(1) bekannt, dass es diese Variable versteht und den »Sicheren Modus« implementiert.
Ist diese Variable auf »false« gesetzt, unterliegt das Seitenanzeigeprogramm keinen Beschränkungen. Setzen auf SYSTEMD_PAGERSECURE=0 oder das Beibehalten der Variable von der geerbten Umgebung könnte den Benutzern die Ausführung beliebiger Befehle erlauben.
Ist $SYSTEMD_PAGERSECURE nicht gesetzt, versuchen die Systemd-Werkzeuge automatisch herauszufinden, ob der »Sicheren Modus« aktiviert werden soll und ob das Seitenanzeigeprogramm dies unterstützt. Der »Sichere Modus« wird aktiviert, falls die effektive UID nicht mit der UID des Eigentümers der Anmeldesitzung übereinstimmt, siehe geteuid(2) und sd_pid_get_owner_uid(3), oder wenn die Ausführung unter Werkzeugen wie sudo(8) oder ähnlichem erfolgt ($SUDO_UID ist gesetzt [3]). In diesen Fällen wird SYSTEMD_PAGERSECURE=1 gesetzt und Seitenanzeigeprogramme, von denen nicht bekannt ist, dass sie den »Sicheren Modus« unterstützen, werden überhaupt nicht verwandt. Beachten Sie, dass diese automatische Erkennung nur die typischsten Mechanismen zur Erlangung von Privilegien abdeckt und dem Komfort dient. Es wird empfohlen, explizit $SYSTEMD_PAGERSECURE zu setzen oder das Seitenanzeigeprogramm zu deaktivieren.
Beachten Sie, dass auch $SYSTEMD_PAGERSECURE gesetzt sein muss, damit die Variablen $SYSTEMD_PAGER oder $PAGER (außer zum Deaktivieren des Seitenanzeigeprogramms) berücksichtigt werden.
$SYSTEMD_COLORS
$SYSTEMD_URLIFY
BEISPIELE¶
Beispiel 1. Ausführen eines durch Mkosi erstellten Arch-Linux-VM-Abbildes
$ mkosi -d arch -p systemd -p linux --autologin -o image.raw -f build $ systemd-vmspawn --image=image.raw
Beispiel 2. Ein Fedora-42-Cloud-Abbild mittels machinectl importieren und ausführen
$ curl -L \
-O https://download.fedoraproject.org/pub/fedora/linux/releases/42/Cloud/x86_64/images/Fedora-Cloud-Base-42-1.1.x86_64.raw.xz \
-O https://download.fedoraproject.org/pub/fedora/linux/releases/42/Cloud/x86_64/images/Fedora-Cloud-42-1.1-x86_64-CHECKSUM \
-O https://fedoraproject.org/fedora.gpg $ gpgv --keyring ./fedora.gpg Fedora-Cloud-42-1.1-x86_64-CHECKSUM $ sha256sum -c Fedora-Cloud-42-1.1-x86_64-CHECKSUM # machinectl import-raw Fedora-Cloud-Base-42-1.1.x86_64.raw.xz fedora-42-cloud # systemd-vmspawn -M fedora-42-cloud
Beispiel 3. Systemds Systemabbild bauen und ausführen und das Journal der VM in eine lokale Datei weiterleiten
$ mkosi build $ systemd-vmspawn \
-D mkosi.output/system \
--private-users $(grep $(whoami) /etc/subuid | cut -d: -f2) \
--linux mkosi.output/system.efi \
--forward-journal=vm.journal \
enforcing=0
Hinweis: Dieses Beispiel verwendet ein Kernelbefehlszeilenargument um sicherzustellen, dass SELinux nicht im Erzwingungsmodus startet.
Beispiel 4. SSH in eine laufende VM mittels systemd-ssh-proxy
$ mkosi build $ my_vsock_cid=3735928559 $ systemd-vmspawn \
-D mkosi.output/system \
--private-users $(grep $(whoami) /etc/subuid | cut -d: -f2) \
--linux mkosi.output/system.efi \
--vsock-cid $my_vsock_cid \
enforcing=0 $ ssh root@vsock/$my_vsock_cid -i /run/user/$UID/systemd/vmspawn/machine-*-system-ed25519
EXIT-STATUS¶
Falls ein Fehler auftrat, wird der Wert Errno an den Rückgabe-Code weitergeleitet. Falls durch das laufende Abbild EXIT_STATUS bereitgestellt wird, wird dies zurückgegeben. Andernfalls wird EXIT_SUCCESS zurückgegeben.
SIEHE AUCH¶
systemd(1), mkosi(1), machinectl(1), importctl(1), Systemladerspezifikation[1]
ANMERKUNGEN¶
- 1.
- Systemladerspezifikation
- 2.
- ANSI-Maskier-Code (Wikipedia)
- 3.
- Es wird für andere Werkzeuge empfohlen, $SUDO_UID geeignet zu setzen und zu überprüfen und es als allgemeine Schnittstelle zu behandeln.
Ü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 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.
systemd 258~rc3 |