Provided by: manpages-de_4.13-4_all bug

BEZEICHNUNG

       systemd-repart, systemd-repart.service - Partitionen automatisch vergrößern und hinzufügen

ÜBERSICHT


       systemd-repart [OPTIONEN…] [[BLOCKGERÄT]…]

       systemd-repart.service

BESCHREIBUNG

       Basierend auf den in repart.d(5) beschriebenen Konfigurationsdateien kann systemd-repart
       Partitionstabellen vergrößern und hinzufügen.

       Wird er ohne Argumente aufgerufen, dann agiert er auf dem Blockgerät, das dem Wurzeldateisystem des
       laufenden Betriebssystems zugrundeliegt, womit Partitionen des gestarteten Betriebssystemabbildes selbst
       vergrößert oder hinzugefügt werden. Falls --image= verwandt wird, wird er auf der festgelegten
       Abbild-Datei agieren. Beim Aufruf in der »initrd« agiert es stattdessen auf das /sysroot/
       zugrundeliegende Blockgerät, d.h. auf dem Blockgerät, auf das in Kürze übergeleitet wird. Der Dienst
       systemd-repart.service wird im Allgemeinen beim Systemstart in der anfänglichen RAM-Platte ausgeführt, um
       die Partitionstabelle des Betriebssystems zu ergänzen, bevor deren Partitionen eingehängt werden.
       systemd-repart agiert (größtenteils) in einem reinen inkrementellen Modus: er vergrößert nur bestehende
       Partitionen oder fügt neue Partitionen hinzu; es verkleinert oder verschiebt keine Partitionen oder
       löscht diese. Der Dienst ist zur Ausführung bei jedem Systemstart gedacht; wenn er allerdings erkennt,
       dass die Partitionstabelle bereits den installierten Konfigurationsdateien repart.d/*.conf entspricht,
       führt es keine Aktion aus.

       systemd-repart ist für den Einsatz beim Ausbringen von Betriebssystemabbildern gedacht, um diese beim
       ersten Systemstart automatisch auf das System, auf dem sie betrieben werden, anzupassen. Damit können
       auszubringende Abbilder eine minimale Größe haben und bei Bedarf beim Systemstart automatisch ergänzt
       werden und von Plattenplatz Besitz ergreifen, der verfügbar ist, aber noch nicht verwandt wird.
       Insbesondere werden die folgenden Anwendungsfälle abgedeckt:

       •   Die Wurzelpartition kann vergrößert werden, um den gesamten verfügbaren Plattenplatz zu belegen.

       •   Eine Partition für /home/, zur Auslagerung oder /srv kann hinzugefügt werden.

       •   Eine zweite (oder dritte, …) Wurzelpartition kann hinzugefügt werden, um A/B-artige Installationen zu
           berücksichtigen, bei der eine zweite Version des Wurzeldateisystems alternativ verwandt wird, um
           Aktualisierungsschemata zu implementieren. Das verteilte Abbild würde nur eine einzelne Partition
           (»A«) transportieren, bei einem ersten Systemstart würde eine zweite Partition (»B«) für diesen Zweck
           automatisch erzeugt.

       Der von systemd-repart ausgeführte Algorithmus ist grob wie folgt:

        1. Die repart.d/*.conf-Konfigurationsdateien werden geladen und ausgewertet und nach Dateinamen sortiert
           (ohne das Verzeichnispräfix).

        2. Die auf dem Blockgerät bereits bestehende Partitionstabelle wird geladen und ausgewertet.

        3. Die bestehenden Partitionen in der Partitionstabelle werden mit den repart.d/*.conf-Dateien nach
           GPT-Partitionstyp-UUID verglichen. Der ersten bestehenden Partition eines bestimmten Typs wird die
           erste Konfigurationsdatei, die den gleichen Typ angibt, zugewiesen. Dann wird die zweite bestehende
           Partition eines bestimmten Typs der zweiten Konfigurationsdatei zugewiesen, die den gleichen Typ
           angibt und so weiter. Nachdem diese iterative Zuweisung abgeschlossen ist, werden alle verbliebenen
           bestehenden Partitionen, für die es keine passenden Konfigurationsdateien gibt, als »fremd«
           betrachtet und unverändert belassen. Jede Konfigurationsdatei, für die derzeit keine Partition
           existiert, wird als Aufforderung verstanden, solch eine Partition zu erstellen.

        4. Unter Berücksichtigung der Größenbeschränkungen und der in den Konfigurationsdateien erklärten
           Gewichtungen werden alle Partitionen, die jetzt erstellt werden sollen, auf der Platte zugeordnet,
           wobei sämtlicher freier Platz unter Berücksichtigung der Größe und Padding-Anforderungen belegt wird.
           Auf ähnliche Weise werden bestehende Partitionen, die vergrößert werden sollen, vergrößert. Neue
           Partitionen werden immer am Ende der bestehenden Partitionstabelle unter Verwendung der ersten
           Partitionstabellenpostion, deren Index größer als der größte aller existierenden Partitionen ist,
           erstellt. Partitionstabellenpositionen werden niemals neu sortiert, daher bleiben Partitionsnummern
           stabil. Beachten Sie, dass diese Zuordnung ausschließlich im Arbeitsspeicher passiert, die
           Partitionstabelle auf der Platte wird noch nicht aktualisiert.

        5. Allen bestehenden Partitionen, für die Konfigurationsdateien existieren und für die derzeit noch
           keine GPT-Partitionsbezeichnung gesetzt ist, wird eine Bezeichnung zugewiesen, entweder explizit aus
           der Konfiguration heraus oder (falls das fehlt) automatisch aus dem Partitionstyp abgeleitet. Das
           Gleiche erfolgt für alle neu erstellten Partitionen. Diese Zuweisungen erfolgen auch ausschließlich
           im Arbeitsspeicher, die Platte wird noch nicht aktualisiert.

        6. Ähnlich wird allen bestehenden Partitionen, für die Konfigurationsdateien existieren und deren
           kennzeichnende UUID derzeit komplett Null ist, eine neue UUID zugewiesen. Diese UUID wird mittels
           eines kryptographischen Hashes aus einem gemeinsamen Startwert zusammen mit der Partitionstyp-UUID
           (und einem Zähler, falls mehrere Partitionen des gleichen Typs definiert sind) ermittelt, siehe
           unten. Das Gleiche erfolgt für alle neu erstellten Partitionen. Diese Zuweisungen erfolgen auch nur
           im Arbeitsspeicher, die Platte wird noch nicht aktualisiert.

        7. Falls die Laufwerks-UUID komplett Null ist, wird diese auch ähnlich initialisiert, ebenfalls mittels
           kryptographischen Hashes aus dem gleichen gemeinsamen Startwert. Auch nur im Arbeitsspeicher.

        8. Der den neuen Partitionen zugewiesene Plattenplatz (d.h. der bisher als frei betrachtete Platz, der
           dies nicht mehr ist), wird gelöscht. Insbesondere werden alle Dateisystemsignaturen entfernt und,
           falls das Gerät dies untersützt, wird der E/A-Steuerbefehl BLKDISCARD erteilt, um die Hardware zu
           informieren, dass der Platz nun leer ist. Zusätzlich wird entsprechend sämtliches »Padding« zwischen
           den Partitionen und dem Ende des Geräts gelöscht.

        9. Die neue Partitionstabelle wird schließlich auf Platte geschrieben. Der Kernel wird gebeten, die
           Partitionstabelle neu einzulesen.

       Als Ausnahme zu der normalerweise streng inkrementellen Arbeitsweise kann systemd-repart auch zum Löschen
       existierender Partitionen beim Aufruf in einem besonderen Modus »Zurück auf Werkseinstellung« verwandt
       werden, um die Installation zurück auf die Vorgaben des Lieferanten zu setzen. Dieser Arbeitsmodus wird
       verwandt, wenn entweder der Schalter --factory-reset=yes auf der Befehlszeile des Werkzeugs übergeben
       wird oder die Aktion systemd.factory_reset=yes auf der Kernelbefehlszeile übergeben wird oder die
       EFI-Variable FactoryReset (Lieferanten-UUID 8cf2644b-4b0b-428f-9387-6d876050dc67) auf »yes« gesetzt ist.
       Es ändert den obigen Algorithmus leicht: zwischen den obigen Schritten Drei und Vier wird jede Partition,
       die explizit mit dem logischen Wert FactoryReset= markiert ist, gelöscht, und der Algorithmus neu
       gestartet, wodurch diese Partitionen erneut leer erstellt werden.

       Beachten Sie, dass systemd-repart nur Partitionstabellen ändert, es erstellt oder vergrößert keine
       Dateisysteme innerhalb dieser Partitionen. Dafür sollte ein separater Mechanismus verwandt werden,
       beispielsweise systemd-growfs(8) und systemd-makefs.

       Der Hash-Wert der UUIDs, die die neu erstellten Partitionen kennzeichnen (oder bestehenden Partitionen,
       die noch keine UUID hatten, zugewiesen wurden), sowie der Platte als Ganzes, wird kryptographisch aus
       einem gemeinsamen Startwert berechnet. Dieser Startwert ist normalerweise die machine-id(5) des Systems,
       so dass die Maschinenkennung wiederholbar die allen Platten zugewiesenen UUIDs bestimmt. Falls die
       Maschinenkennung nicht gelesen werden kann (oder der Benutzer das nachfolgend beschriebene --seed=random
       übergibt), wird der Startwert stattdessen zufällig erzeugt, womit die Partitions-UUIDs letztendlich
       zufällig sind. Der Startwert kann auch explizit gesetzt werden; dafür muss er als UUID über die Option
       --seed= angegeben werden. Durch den Hash der UUIDs mit einem gemeinsamen Startwert werden Abbilder, die
       mit diesem Werkzeug erstellt werden, reproduzierbar und das Ergebnis des obigen Algorithmus wird
       deterministisch.

       Das Positionsargument sollte das Blockgerät angeben, auf dem agiert werden soll. Es kann auch statt des
       Blockgeräteknotenpfades eine reguläre Datei angegeben werden. Dann wird der Befehl darauf so agieren, wie
       er es täte, wenn ein Loopback-Blockgeräteknoten mit der angehängten Datei angegben worden wäre. Falls
       --empty=create angegeben ist, dann wird der angegebene Pfad als reguläre Datei erstellt, was für die
       Erstellung von Plattenabbildern von Null auf nützlich ist.

OPTIONEN

       Die folgenden Optionen werden verstanden:

       --dry-run=
           Akzeptiert einen logischen Wert. Falls der Schalter nicht angegeben ist, ist --dry-run=yes die
           implizierte Vorgabe. Steuert, ob Systemd-repart die erbetene Neupartitionierungsaktion ausführt oder
           ob es nur anzeigen soll, was es machen würde. Die Partitionstabelle des Gerätes wird nur angefasst,
           falls --dry-run=no festgelegt ist.

       --empty=
           Akzeptiert entweder »refuse«, »allow«, »require«, »force« oder »create«. Steuert, wie auf komplett
           leeren Blockgeräten agiert werden soll, d.h. solchen, die noch keine
           Partitionstabelle/Plattenbezeichnung tragen. Falls dieser Schalter nicht angegeben ist, ist »refuse«
           die implizite Vorgabe.

           Falls »refuse«, verlangt systemd-repart, dass das Blockgerät, auf dem es agieren soll, eine
           Partitionstabelle trägt und lehnt die Aktion ab, falls keine gefunden wird. Falls »allow«, wird der
           Befehl eine bestehende Partitionstabelle erweitern oder eine neue erstellen, falls noch keine
           existiert. Falls »require«, wird der Befehl eine neue Partitionstabelle erstellen, falls noch keine
           existiert, und die Aktion ablehnen, falls bereits eine existiert. Falls »force«, wird es
           bedingungslos eine frische Partitionstabelle erstellen, wodurch die komplette Platte gelöscht wird.
           Falls »force«, werden keine bestehenden Partitionen berücksichtigt bzw. überleben diese Aktion.
           Somit: Verwenden Sie dies vorsichtig, dies ist eine großartige Möglichkeit, Ihre sämtlichen Daten zu
           verlieren. Falls »create«, wird eine neue Loopback-Datei unterhalb des mit dem Parameter Geräteknoten
           übergebenen Pfades erstellt, mit der mit --size= angezeigten Größe, siehe unten.

       --discard=
           Akzeptiert einen logischen Wert. Falls dieser Schalter nicht angegeben wird, ist --discard=yes die
           implizite Vorgabe. Steuert, ob der E/A-Steuerbefehl BLKDISCARD für den Bereich, der von hinzugefügten
           Partitionen belegt wird, oder dem Bereich dazwischen, erteilt werden soll. Normalerweise ist es eine
           gute Idee, diese Anfrage zu erteilen, da sie die zugrundeliegende Hardware informiert, dass die
           betrachteten Blöcke als leer angenommen werden sollen, wodurch die Leistung erhöht wird. Falls auf
           einer regulären Datei statt auf einem Blockgeräteknoten agiert wird, dann wird eine Sparse-Datei
           erstellt.

       --size=
           Akzeptiert eine Größe in Bytes mittels der üblichen Endungen K, M, G, T oder den besonderen Wert
           »auto«. Falls verwandt, muss der angegebene Geräteknotenpfad sich auf eine reguläre Datei beziehen,
           die dann auf die angegeben Größe vergrößert wird, falls sie kleiner ist, bevor irgendwelche
           Änderungen an der Partitionstabelle erfolgen. Falls als »auto« angegeben, wird die minimale Größe für
           das Platten-Abbild automatisch bestimmt (d.h. die minimale Größe aller Partitionen wird unter
           Berücksichtigung des Platzbedarfs für zusätzliche Metadaten aufsummiert). Dieser Schalter wird nicht
           unterstützt, falls der angegebene Knoten ein Blockgerät ist. Dieser Schalter hat keinen Effekt, falls
           die Datei bereits so groß wie oder größer als die angegebene Größe ist. Die angegebene Größe wird
           implizit auf Vielfache von 4096 aufgerundet. Wird dies zusammen mit --empty=create verwandt, dann
           gibt dies die anfängliche Größe der zu erstellenden Loopback-Datei an.

           Die Option --size=auto berücksichtigt die Größe von bereits existierenden Partitionen. Allerdings
           trägt sie Partitionstabellen, die nicht eng gepackt sind, keine Rechnung: die konfigurierten
           Partitionen könnten weiterhin nicht in das zugrundeliegende Gerät passen, falls zwischen den bereits
           existierenden Partitionen (oder vor der ersten Partition) leerer Platz existiert, der nicht
           vollständig von zu erstellenden oder anzuwachsenden Partitionen ausgefüllt werden kann.

           Beachten Sie auch, dass die automatische Größenbestimmung keine Dateien oder Verzeichnisse
           berücksichtigt, die mit CopyFiles= angegeben sind: die Aktion könnte fehlschlagen, falls die
           angegebenen Dateien oder Verzeichnisse mehr Plattenplatz benötigen, als für die partitionsbezogenen
           minimalen Größenbegrenzung konfiguriert ist.

       --factory-reset=
           Akzeptiert einen logischen Wert. Falls dieser Schalter nicht angegeben wird, ist --factory=reset=no
           die implizite Vorgabe. Steuert, ob im oben beschriebenen Modus »Zurück auf Werkseinstellung« agiert
           werden soll. Falls auf wahr gesetzt, wird dies alle bestehenden, mit FactoryReset= auf »yes«
           gesetzten Partitionen früh entfernen, während der Neupartitionierungsalgorithmus ausgeführt wird.
           Verwenden Sie dies vorsichtig, dies ist eine großartige Möglichkeit, Ihre sämtlichen Daten zu
           verlieren. Beachten Sie, dass Partitionsdateien FactoryReset= explizit einschalten müssen, da die
           Option standardmäßig ausgeschaltet ist. Falls keine Partitionen für die Rückkehr in die
           Werkseinstellungen markiert sind, hat dieser Schalter keine Auswirkungen. Beachten Sie, dass es zwei
           andere Möglichkeiten gibt, die Aktion »Zurück auf Werkseinstellung« zu erbitten: mittels der
           Kernelbefehlszeile oder über eine EFI-Variable, siehe oben.

       --can-factory-reset
           Falls dieser Schalter angegeben ist, wird die Platte nicht neupartitioniert. Stattdessen wird
           ermittelt, ob bestehende Partitionen mit FactoryReset= markiert sind. Falls dies der Fall ist, wird
           sich das Werkzeug mit einem Exit-Status 0 beenden, andernfalls mit einem von 0 verschiedenen Wert.
           Dieser Schalter wird dazu verwandt, schnell zu bestimmen, ob das laufende System das in
           systemd-repart eingebaute Zurücksetzen auf die Werkseinstellungen unterstützt.

       --root=
           Akzeptiert einen Pfad zu einem Verzeichnis, das als Wurzeldateisystem bei der Suche nach
           repart.d/*.conf-Dateien, der Maschinenkennungsdatei, die als Startwert verwandt werden soll, und für
           die Quelldateien und -Verzeichnisse CopyFiles= und CopyBlocks= eingesetzt werden soll. Wird dies auf
           dem regulären Dateisystem aufgerufen, ist die Vorgabe das Wurzeldateisystem »/« des Rechners. Beim
           Aufruf in der anfänglichen RAM-Platte ist die Vorgabe /sysroot/, so dass das Werkzeug auf der
           Konfiguration und der im Wurzeldateisystem, auf das später übergeleitet wird, gespeicherten
           Maschinenkennung agieren wird.

       --image=
           Akzeptiert einen Pfad zu einer Abbilddatei oder einem Abbildgerät, das in ähnlicher Art wie --root=
           eingehängt und verwandt werden soll, siehe oben.

       --seed=
           Akzeptiert eine UUID oder den besonderen Wert random als Argument. Falls eine UUID festgelegt ist,
           werden die Partitionen und der Partitionstabelle selbst zuzuweisenden UUIDs durch kryptographisches
           Hashen daraus abgeleitet. Falls nicht angegeben, wird versucht, die Maschinenkennung des Rechners
           abzuleiten (oder genauer, aus dem mit --root= konfigurierten Wurzelverzeichnis) und dies stattdessen
           als Startwert zu verwenden, ansonsten wird auf einen zufälligen Startwert zurückgefallen. Verwenden
           Sie --seed=random, um einen zufälligen Startwert zu erzwingen. Durch explizites Setzen des
           Startwertes können streng reproduzierbare Partitionstabellen erstellt werden.

       --pretty=
           Akzeptiert ein logisches Argument. Falls dieser Schalter nicht angegeben ist, ist die Vorgabe an,
           falls es von einem interaktiven Terminal aufgerufen wird, ansonsten aus. Steuert, ob eine
           benutzerfreundliche Tabelle angezeigt und graphisch die angewandten Änderungen dargestellt werden
           sollen.

       --definitions=
           Akzeptiert einen Dateisystempfad. Falls angegeben, werden die *.conf-Dateien aus dem angegebenen
           Verzeichnis gelesen, statt nach ihnen in /usr/lib/repart.d/*.conf, /etc/repart.d/*.conf,
           /run/repart.d/*.conf zu suchen.

       --key-file=
           Akzeptiert einen Dateisystempfad. Konfiguriert den zu verwendenden Verschlüsselungsschlüssel, wenn
           LUKS2-Datenträger mit der Einstellung Encrypt=key-file in Partitionsdateien eingerichtet werden.
           Sollte sich auf eine normale Datei, die den Schlüssel enthält, beziehen, oder ein
           AF_UNIX-Datenstrom-Socket im Dateisystem. In letzterem Fall wird zu dieser eine Verbindung
           aufgenommen und der Schlüssel daraus gelesen. Falls dieser Schalter nicht angegeben ist, wird der
           leere Schlüssel (d.h. ein Schlüssel der Länge Null) verwandt. Dieses Verhalten ist für die
           Einrichtung von verschlüsselten Partitionen während der frühen erstmaligen Systemstartphase nützlich,
           bei denen des vom Anwender bereitgestellte Passwort erst in einem späteren Einrichtungsschritt
           empfangen wird.

       --tpm2-device=, --tpm2-pcrs=
           Konfiguriert das TPM2-Gerät und die Liste der PCRs, die für mit der Option Encrypt=tpm2
           konfigurierten LUKS2-Datenträger verwandt werden. Diese Option akzeptiert die gleichen Parameter wie
           die identisch benannte Option in systemd-cryptenroll(1) und hat die gleiche Auswirkung auf
           Partitionen, bei denen TPM2-Registrierung erbeten wird.

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

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

       --no-pager
           Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.

       --no-legend
           Gibt die Legende nicht aus, d.h. die Spaltenköpfe und die Fußzeile mit Hinweisen.

       --json=MODUS
           Zeigt die Ausgabe als JSON formatiert. Erwartet entweder »short« (für die kürzest mögliche Ausgabe
           ohne unnötigen Leerraum oder Zeilenumbrüche), »pretty« (für eine schönere Version der gleichen
           Ausgabe, mit Einzügen und Zeilenumbrüchen) oder »off« (um die Vorgabe (JSON-Ausgabe) auszuschalten).

EXIT-STATUS

       Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.

SIEHE AUCH

       systemd(1), repart.d(5), machine-id(5), systemd-cryptenroll(1)

Ü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.

systemd 250                                                                                    SYSTEMD-REPART(8)