REPART.D(5)

BEZEICHNUNG
repart.d - Partitionsdefinitionsdateien für automatische Neupartitionierung beim Systemstart

ÜBERSICHT

/etc/repart.d/*.conf
/run/repart.d/*.conf
/usr/lib/repart.d/*.conf

BESCHREIBUNG

repart.d/*.conf-Dateien beschreiben grundlegende Eigenschaften von Partitionen von Blockgeräten auf dem lokalen System. Dies kann zur Erklärung von Typen, Namen und Größen von Partitionen, die existieren sollen, verwandt werden. Der Dienst systemd-repart(8) liest diese Dateien und versucht, derzeit fehlende Partitionen hinzuzufügen und Partitionen gemäß diesen Anforderungen zu vergrößern. Die Aktionen sind im Allgemeinen inkrementell, d.h. dass bei der Anwendung Bestehendes intakt gelassen wird und Partitionen niemals verkleinert, verschoben oder gelöscht werden.

Diese Definitionsdateien sind nützlich, um Betriebssystemabbilder zu realisieren, die mit minimaler Größe vorbereitet und ausgeliefert werden (denen zum Beispiel Partitionen für Zustand und zum Auslagern fehlen) und die beim ersten Systemstart von sämtlichem noch freien Platz gemäß einiger grundlegender Regeln Besitz ergreifen.

Derzeit ist die Unterstützung für Partitionsdefinitionsdateien nur für GPT-Partitionstabellen implementiert.

Partitionsdateien werden im Allgemeinen mit sämtlichen auf der Platte bereits existierenden Partitionen mittels eines einfachen Algorithmus verglichen: die Partitionsdateien werden gemäß ihres Dateinamens sortiert (wobei voranstehende Verzeichnisse ignoriert werden) und dann der Reihe nach mit bestehenden Partitionen verglichen, bei denen die Partitionstyp-UUID übereinstimmt. Insbesondere wird der ersten bestehenden Partition mit einer bestimmten Partitionstyp-UUID die erste Definitionsdatei mit der gleichen Partitionstyp-UUID zugewiesen und der zweiten bestehenden Partition mit einer bestimmten Partitionstyp-UUID die zweite Partitionsdatei mit der gleichen Typ-UUID und so weiter. Für alle verbliebenen Partitionsdateien, die keine passende Partition haben, wird angenommen, dass sie neue Partitionen definieren, die erstellt werden sollen. Solche Partitionen werden am Ende der Partitionstabelle angehängt, in der Reihenfolge, die durch ihre Namen definiert ist, wobei die erste Partitionsposition eingesetzt wird, die größer als die höchste derzeit verwandte Positionsnummer ist. Alle bestehenden Partitionen, für die keine passende Partitionsdatei vorhanden ist, verbleiben unverändert.

Beachten Sie, dass diese Partitionsdefinitionsdateien nicht die Inhalte der Partitionen beschreiben, wie beispielsweise das zu verwendende Dateisystem. Separate Mechanismen, wie systemd-growfs(8) und systemd-makefs, können dazu verwandt werden, die Dateisysteme innerhalb dieser Partitionen zu initialisieren und zu vergrößern.

[PARTITION]-ABSCHNITT-OPTIONEN

Type=
    Die zu vergleichende GPT-Partitionstyp-UUID. Dies kann eine GPT-Partitionstyp-UUID wie 4f68bce3-e8cd-4db1-96e7-fbcaf984b709 oder einer der folgenden besonderen Kennzeichner sein:

    Tabelle 1. GPT-Partitionstypkennzeichner
    Kennzeichner | Erklärung
    esp | EFI-Systempartition
    xbootldr | Erweiterte Systemstartprogrammpartition
    swap | Auslagerungspartition
    home | Home- (/home/)-Partition
    srv | Serverdaten- (/srv/)-Partition
    var | Variable-Daten- (/var/)-Partition
    tmp | Temporäre-Daten- (/var/tmp/)-Partition
    linux-generic | Generische Linux-Dateisystem-Partition
    root | Wurzeldateisystem-Partitionstyp, der für die lokale Architektur geeignet ist (ein Alias für einen der unten aufgeführten Architektur-Wurzeldateisystem-Partitionstypen, z.B. root-x86-64)
    root-verity | Verity-Daten für die Wurzeldateisystem-Partition für die lokale Architektur
    root-secondary | Wurzeldateisystem-Partition für die sekundäre Architektur der lokalen Architektur (normalerweise die 32-Bit-Architektur, die auf die lokale 64-Bit-Architektur passt)
    root-secondary-verity | Verity-Daten für die Wurzeldateisystem-Partition der sekundären Architektur
    root-x86 | Wurzeldateisystempartition für die X86- (32-Bit-, i386)-Architektur
    root-x86-verity | Verity-Daten für die X86- (32-Bit)-Wurzeldateisystempartition
    root-x86-64 | Wurzeldateisystempartition für die X86_64- (64-Bit, Amd64)-Architektur
    root-x86-64-verity | Verity-Daten für die X86_64- (64-Bit)-Wurzeldateisystempartition
    root-arm | Wurzeldateisystempartition für die ARM- (32-Bit)-Architektur
    root-arm-verity | Verity-Daten für die ARM- (32-Bit)-Wurzeldateisystempartition
    root-arm64 | Wurzeldateisystempartition für die ARM- (64-Bit, Aarch64)-Architektur
    root-arm64-verity | Verity-Daten für die ARM- (64-Bit, Aarch64)-Wurzeldateisystempartition
    root-ia64 | Wurzeldateisystempartition für die Ia64-Architektur
    root-ia64-verity | Verity-Daten für die Ia64-Wurzeldateisystempartition

    Diese Einstellung ist standardmäßig linux-generic.

    Die meisten der oben aufgeführten Partitionstyp-UUIDs sind in der Spezifikation für auffindbare Partitionen[1] definiert.

Label=
    Die Plattenbezeichnung in Textform, die der Partition zugewiesen werden soll, falls noch keine zugewiesen ist. Beachten Sie, dass diese Einstellung nicht für Vergleiche verwandt wird. Sie wird auch nicht verwandt, falls für bestehende Partitionen bereits eine Bezeichnung gesetzt ist. Sie wird daher nur verwandt, wenn eine Partition neu erstellt wird oder wenn eine bestehende Partition noch keine Bezeichnung gesetzt hat (das bedeutet: eine leere Bezeichnung). Falls nicht angegeben, wird automatisch eine Bezeichnung verwandt, die vom Partitionstyp abgeleitet wird. Die einfache Expansion des Kennzeichners wird unterstützt, siehe unten.

UUID=
    Die UUID, die der Partition zugewiesen werden soll, falls noch keine zugewiesen ist. Beachten Sie, dass diese Einstellung nicht für Vergleiche verwandt wird. Sie wird auch nicht verwandt, falls für bestehende Partitionen bereits eine UUID gesetzt ist. Sie wird daher nur verwandt, wenn eine Partition neu erstellt wird oder wenn eine bestehende Partition eine komplett aus Nullen bestehende UUID gesetzt hat. Falls nicht angegeben, wird automatisch eine UUID verwandt, die vom Partitionstyp abgeleitet wird.

Priority=
    Eine der Partition zuzuordnende numerische Priorität im Bereich -2147483648…2147483647. Kleinere Zahlen zeigen hierbei höhere Priorität an und größere Zahlen niedrigere Priorität. Diese Priorität wird verwandt, falls die konfigurierten Größenbeschränkungen nicht erlauben, dass alle Partitionen auf den verfügbaren Plattenplatz passen. Falls die Partitionen nicht passen, wird die höchste numerische Partitionspriorität aller definierten Partitionen bestimmt und alle definierten Partitionen mit dieser Priorität werden aus der Liste der neu zu erstellenden Partitionen entfernt (dies können mehrere sein, falls die gleiche Priorität für mehrere Partitionen verwandt wird). Der Einpassungsalgorithmus wird dann erneut versucht. Falls die Partitionen immer noch nicht passen, wird nun die jetzt höchste numerische Partitionspriorität bestimmt und die passenden Partitionen werden auch entfernt, und so weiter. Partitionen mit einer Priorität von 0 oder niedriger werden niemals entfernt. Falls alle Partitionen mit einer Priorität über 0 entfernt sind und die Partitionen immer noch nicht auf das Gerät passen, schlägt die Aktion fehl. Beachten Sie, dass die Priorität keinen Einfluss auf die Anordnung von Partitionen hat, verwenden Sie dafür die alphabetische Reihenfolge der Dateinamen der Partitionsdefinitionsdateien. Standardmäßig 0.

Weight=
    Eine numerische Gewichtung im Bereich 0…1000000, das der Partition zugewiesen werden soll. Der verfügbare Plattenplatz wird den definierten Partitionen gemäß ihrer relativen Gewichtung zugewiesen (abhängig von den mit SizeMinBytes=, SizeMaxBytes= konfigurierten Größenbeschränkungen), so dass eine Partition mit Gewichtung 2000 den doppelten Platz von einer mit Gewichtung 1000 bekommt und eine Partition mit Gewichtung 333 ein Drittel davon. Standardmäßig 1000.

    Die Einstellung Weight= wird zur Verteilung des verfügbaren Plattenplatzes auf »elastische« Art verwandt, basierend auf der Plattengröße und bestehender Partitionen. Soll eine Partition eine feste Größe haben, müssen Sie sowohl SizeMinBytes= als auch SizeMaxBytes= mit dem gleichen Wert verwenden, um die Größe auf einen Wert festzulegen; die Gewichtung hat in diesem Fall keine Auswirkung.

PaddingWeight=
    Ähnlich zu Weight=, setzt aber ein Gewichtung für den freien Platz nach der Partitionierung (dem »Padding«). Bei der Verteilung des verfügbaren Platzes wird die Gewichtung aller Partitionen und aller definierten Paddings aufsummiert und dann erhält jede Partition und jedes Padding den durch ihre Gewichtung bestimmten Anteil. Standardmäßig 0, d.h. standardmäßig wird kein Padding angewandt.

    Padding ist nützlich, falls leerer Platz für spätere Ergänzungen oder als Sicherheitsabstand am Ende des Gerätes oder zwischen Partitionen belassen werden soll.

SizeMinBytes=, SizeMaxBytes=
    Legt die minimalen und maximalen Größenbeschränkungen in Byte fest. Akzeptiert die gewöhnlichen Endungen K, M, G, T … (zur Basis 1024). Falls SizeMinBytes= festgelegt ist, wird die Partition mit mindestens dieser Größe angelegt oder mindestens auf diese Größe vergrößert. Falls SizeMaxBytes= festgelegt ist, wird die Partition maximal mit der Größe angelegt oder auf diese Größe vergrößert. Die genaue Größe wird mittels des durch Weight= angegebenen Gewichtungswertes festgelegt, siehe oben. Wird SizeMinBytes= auf den gleichen Wert wie SizeMaxBytes= festgelegt, dann hat die konfigurierte Gewichtung keine Auswirkung und die Partition wird auf genau diese feste Größe gesetzt. Beachten Sie, dass niemals Partitionen kleiner als 4096 Byte angelegt werden und da Partitionen niemals verkleinert werden, auch die vorhergehende Größe (falls die Partition bereits existiert) als Untergrenze für die neue Größe erzwungen wird. Der Wert sollte als Vielfaches von 4096 Byte angegeben werden und wird aufgerundet (falls SizeMinBytes=) oder andernfalls abgerundet (falls SizeMaxBytes=). Falls das zugrundeliegende Gerät nicht genug Platz bereitstellt, um diese Beschränkungen zu erfüllen, wird das Anlegen fehlschlagen. Wenn Partitionen angelegt werden sollen, dann könnten diese, abhängig von der oben beschrieben Einstellung Priority=, entfallen und der Anlegealgorithmus neu gestartet werden. Standardmäßig ist eine minimale Größenbeschränkung von 10 M und keine maximale Größenbeschränkungen gesetzt.

PaddingMinBytes=, PaddingMaxBytes=
    Legt die minimalen und maximalen Größenbeschränkungen in Byte für den freien Platz nach der Partition (des »Padding«) fest. Die Semantik ist ähnlich zu SizeMinBytes= und SizeMaxBytes=, außer das freier Platz, anders als bei Partitionen, verkleinert und kleiner als Null werden kann. Standardmäßig sind keine Größenbeschränkungen für Padding gesetzt, so dass ausschließlich PaddingWeight= die Größe des angewandten Paddings bestimmt.

CopyBlocks=
    Akzeptiert einen Pfad zu einer regulären Datei, einem Blockgeräteknoten oder Verzeichnis. Falls festgelegt und die Partition neu erstellt wird, werden die Daten von dem festgelegten Pfad auf die neu erstellte Partition auf Block-Niveau geschrieben. Falls ein Verzeichnis angegeben ist, wird das zugrundeliegende Blockgerät des Dateisystems, auf dem sich das Verzeichnis befindet, bestimmt, und die Daten werden direkt daraus gelesen. Diese Option ist nützlich, um effizient bestehende Dateisysteme auf Block-Niveau auf eine neue Partition zu vervielfältigen, beispielsweise um ein einfaches Betriebssysteminstallationsprogramm oder Betriebssystem-Abbild-Erstellprogramm zu bauen.

    Die hier festgelegte Datei muss eine Größe haben, die ein Vielfaches der grundlegenden Blockgröße von 512 und nicht leer ist. Falls diese Option verwandt wird, wird der Größenzuweisungsalgorithmus leicht geändert: die Partition wird mindestens so groß erstellt, damit die Daten hineinpassen, d.h. die Datengröße ist ein zusätzlicher Minimalwert, der vom Zuweisungsalgorithmus in Betracht genommen wird, ähnlich wie und ergänzend zu dem Wert SizeMin=, der weiter oben konfiguriert ist.

    Diese Option hat keinen Effekt, falls die Partition, für die sie erklärt ist, bereits existiert, d.h. bestehende Daten werden niemals überschrieben. Beachten Sie, dass die Daten hineinkopiert werden, bevor die Partitionstabelle aktualisiert wird, d.h. bevor die Partition tatsächlich dauerhaft erstellt wird. Dies macht das Verfahren robust: es wird garantiert, dass die Partition entweder gar nicht existiert oder komplett befüllt ist; es ist nicht möglich, dass die Partition existiert, aber nicht oder nur teilweise befüllt ist.

FactoryReset=
    Akzeptiert ein logisches Argument. Falls festgelegt, wird die Partition zum Entfernen während einer »Zurück auf Werkseinstellung«-Aktion vorgemerkt. Diese Funktionalität ist für Schemata nützlich, bei denen Abbilder auf ihren ursprünglichen Zustand durch die Entfernung von Partitionen und deren Neuerstellung zurückgesetzt werden können. Standardmäßig aus.

KENNZEICHNER

In den Label=-Einstellungen können Kennzeichner verwandt werden. Die folgenden Expansionen werden verstanden:

Tabelle 2. Verfügbare Kennzeichner
Kennzeichner | Bedeutung | Details
"%a" | Architektur | Eine kurze Zeichenkette, die die Architektur des lokalen Systems identifiziert. Eine Zeichenkette wie x86, x86-64 oder arm64. Siehe die für ConditionArchitecture= in systemd.unit(5) definierten Architekturen für die vollständige Liste.
"%b" | Boot-Kennung | Die Boot-Kennung des laufenden Systems, formatiert als Zeichenkette. Siehe random(4) für weitere Informationen.
"%B" | Betriebssystembaukennung | Die Betriebssystembaukennung des laufenden Systems, wie aus dem Feld BUILD_ID= in /etc/os-release ausgelesen. Falls nicht gesetzt, wird es zur leeren Zeichenkette aufgelöst. Siehe os-release(5) für weitere Informationen.
"%H" | Rechnername | Der Rechnername des laufenden Systems.
"%l" | Kurzer Rechnername | Die Rechnername des laufenden Systems, abgeschnitten am ersten Punkt, um alle Domain-Komponenten zu entfernen.
"%m" | Maschinenkennung | Die Maschinenkennung des laufenden Systems, formatiert als Zeichenkette. Siehe machine-id(5) für weitere Informationen.
"%o" | Betriebssystemkennung | Die Betriebssystemkennung des laufenden Systems, wie aus dem Feld ID= in /etc/os-release ausgelesen. Siehe os-release(5) für weitere Informationen.
"%v" | Kernelveröffentlichung | Identisch zur Ausgabe von uname -r.
"%w" | Betriebssystemversionskennung | Die Betriebssystemversionskennzeichnung des laufenden Systems, wie aus dem Feld VERSION_ID= in /etc/os-release ausgelesen. Falls nicht gesetzt wird es die leere Zeichenkette. Siehe os-release(5) für weitere Informationen.
"%W" | Betriebssystemvariantenkennung | Die Betriebssystemvariantenkennung des laufenden Systems, wie aus dem Feld VARIANT_ID= in /etc/os-release ausgelesen. Falls nicht gesetzt wird es die leere Zeichenkette. Siehe os-release(5) für weitere Informationen.
"%%" | Einzelnes Prozentzeichen | Verwenden Sie »%%« anstelle von »%«, um ein einzelnes Prozentzeichen festzulegen.

BEISPIELE

Beispiel 1. Vergrößern der Wurzelpartition während des ersten Systemstarts auf die gesamte Plattengröße

Mit der folgenden Datei wird die Wurzelpartition automatisch, falls möglich, auf die gesamte Platte während des Systemstarts vergrößert.

    # /usr/lib/repart.d/50-root.conf
    [Partition]
    Type=root

Beispiel 2. Automatisches Anlegen einer Auslagerungs- und Home-Partition beim Systemstart, falls diese fehlen

Die Home-Partition bekommt sämtlichen verfügbaren Plattenplatz, während die Auslagerungspartition mindestens 64 MB und maximal 1 GB bekommt. Die Priorität für die Auslagerungspartition wird auf > 0 gesetzt, um sicherzustellen, dass die Auslagerungspartition nicht verwandt wird, falls nicht genug Platz verfügbar ist. Für jeweils drei der Home-Partition zugewiesenen Byte wird der Auslagerungspartition ein Byte zugewiesen.

    # /usr/lib/repart.d/60-home.conf
    [Partition]
    Type=home

    # /usr/lib/repart.d/70-swap.conf
    [Partition]
    Type=swap
    SizeMinBytes=64M
    SizeMaxBytes=1G
    Priority=1
    Weight=333

Beispiel 3. B-Partitionen in einer A/B-Verity-Installation erzeugen, falls sie fehlen

Nehmen wir an, der Lieferant hat vor, Betriebssystemabbilder in einer A/B-Installation, d.h. mit zwei Wurzelpartitionen (und zwei passenden Verity-Partitionen), zu aktualisieren, die dann während Upgrades alternierend verwandt werden sollen. Um die Abbildgröße zu minimieren, wird das ursprüngliche Abbild nur mit einer Wurzel und einer Verity-Partition (der Gruppe »A«) ausgeliefert und die zweite Wurzel- und Verity-Partition (die Gruppe »B«) wird während des ersten Systemstarts im freien Bereich des Mediums eingerichtet.

    # /usr/lib/repart.d/50-root.conf
    [Partition]
    Type=root
    SizeMinBytes=512M
    SizeMaxBytes=512M

    # /usr/lib/repart.d/60-root-verity.conf
    [Partition]
    Type=root-verity
    SizeMinBytes=64M
    SizeMaxBytes=64M

Die Definitionen decken die Gruppe »A« der Wurzelpartion (der festen Größe 512 MB) und der Verity-Partition für die Wurzelpartition (der festen Größe 64 MB) ab. Mit Symlinks wird die Gruppe »B« der Partitionen erstellt, da sie schließlich die gleichen Eigenschaften und Größen wie die Gruppe »A« haben sollen.

    # ln -s 50-root.conf /usr/lib/repart.d/70-root-b.conf
    # ln -s 60-root-verity.conf /usr/lib/repart.d/80-root-verity-b.conf

SIEHE AUCH

systemd(1), systemd-repart(8), sfdisk(8)

ANMERKUNGEN

1.  Spezifikation für auffindbare Partitionen
    https://systemd.io/DISCOVERABLE_PARTITIONS

Ü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 <debian-l10n-german@lists.debian.org>.