- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
REPART.D(5) | repart.d | 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 Definitionen nur zum Erstellen und Initialisieren neuer Partitionen oder zum Vergrößern bestehender Partitionen verwandt werden können. In letzerem Fall wird es nicht die enthaltenen Dateisysteme vergrößern, separate Mechanismen, wie systemd-growfs(8), können dazu verwandt werden, die Dateisysteme innerhalb dieser Partitionen zu vergrößern. Partitionen können auch durch die Einstellung GrowFileSystem= zum automatischen Vergrößern markiert werden. In diesem Fall wird das System beim erstmaligen Einhängen durch Werkzeuge vergrößert, die diesen Schalter respektieren. Details werden nachfolgend beschrieben.
[PARTITION]-ABSCHNITT-OPTIONEN¶
Type=
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-verity-sig | Verity-Signaturdaten 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-secondary-verity-sig | Verity-Signaturdaten für die Wurzeldateisystem-Partition der sekundären Architektur |
root-{arch} | Wurzeldateisystempartition der angegebenen Architektur (wie root-x86-64 oder root-riscv64) |
root-{arch}-verity | Verity-Daten für die Wurzeldateisystem-Partition der angegebenen Architektur |
root-{arch}-verity-sig | Verity-Signaturdaten für die Wurzeldateisystem-Partition der angegebenen Architektur |
usr | /usr/-Dateisystem-Partitionstyp, der für die lokale Architektur geeignet ist (ein Alias für einen der unten aufgeführten Architektur-/usr/-Dateisystem-Partitionstypen, z.B. usr-x86-64) |
usr-verity | Verity-Daten für die /usr/-Dateisystem-Partition für die lokale Architektur |
usr-verity-sig | Verity-Signaturdaten für die /usr/-Dateisystem-Partition für die lokale Architektur |
usr-secondary | /usr/-Dateisystem-Partition für die sekundäre Architektur der lokalen Architektur (normalerweise die 32-Bit-Architektur, die auf die lokale 64-Bit-Architektur passt) |
usr-secondary-verity | Verity-Daten für die /usr/-Dateisystem-Partition der sekundären Architektur |
usr-secondary-verity-sig | Verity-Signaturdaten für die /usr/-Dateisystem-Partition der sekundären Architektur |
usr-{arch} | /usr/-Dateisystempartition für die angegebene Architektur |
usr-{arch}-verity | Verity-Daten für die /usr/-Dateisystem-Partition der angegebenen Architektur |
usr-{arch}-verity-sig | Verity-Signaturdaten für die /usr/-Dateisystem-Partition der angegebenen Architektur |
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=
UUID=
Priority=
Weight=
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=
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=
PaddingMinBytes=, PaddingMaxBytes=
CopyBlocks=
Falls der besondere Wert »auto« festgelegt ist, wird die Quelle, aus der kopiert wird, automatisch vom laufenden System (oder dem mit --image= festgelegten Abbild — falls verwandt) aufgenommen. Eine Partition, die sowohl auf den konfigurierten Partitionstyp (wie mit dem oben beschriebenen Type= deklariert) passt als auch auf das aktuelle eingehängte Verzeichnis, das für diesen Paritionstyp geeignet ist, wird bestimmt. Falls beispielsweise der Partitionstyp auf »root« gesetzt ist, wird die dem Wurzelverzeichnis (/) zugrundeliegende Partition als Kopierquelle verwandt — falls deren Partitionstyp auch auf »root« gesetzt ist. Falls der deklarierte Typ »usr« ist, wird die /usr/ zugrundeliegende Partition als Kopierquelle verwandt — falls deren Partitionstyp auch auf »usr« gesetzt ist. Die Logik ist in der Lage, automatisch die verschlüsselten und Verity-aktivierten Datenträgern zugrundeliegenden Partitionen zu ermitteln. »CopyBlocks=auto« ist nützlich, um »selbst-replizierende Systeme« zu implementieren, d.h. Systeme, die ihr eigenes Installationsprogramm sind.
Die hier angegebene 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.
Diese Option kann nicht mit Format= oder CopyFiles= kombiniert werden.
Format=
Diese Option hat keine Auswirkung, falls die Partition bereits existiert.
Ähnlich dem Verhalten von CopyBlocks= wird das Dateisystem formatiert, bevor die Partition erstellt wird, wodurch sichergestellt wird, dass die Partition immer über ein vollständig initialisiertes Dateisystem verfügt.
Diese Option kann nicht mit CopyBlocks= kombiniert werden.
CopyFiles=
Diese Option hat keine Auswirkung, falls die Partition bereits existiert: sie kann nicht dazu verwandt werden, zusätzliche Dateien auf eine bestehende Partition zu kopieren, sie kann nur zur Befüllung eines frisch erstellten Dateisystems verwandt werden.
Die Kopieraktion wird ausgeführt, bevor das Dateisystem in der Partitionstabelle registriert wird. Damit wird sichergestellt, dass ein so befülltes Dateisystem immer vollständig initialisiert existiert.
Diese Option kann nicht mit CopyBlocks= kombiniert werden.
Wenn systemd-repart mit dem Befehlszeilenschalter --image= oder --root= aufgerufen wird, werden die festgelegten Quellpfade als relativ zu dem festgelegten Wurzelverzeichnis oder der Wurzel des Plattenabbilds angesetzt.
MakeDirectories=
Der hauptsächliche Einsatzfall für diese Option ist die Erstellung einer minimalen Gruppe von Verzeichnissen, über die Partitionen, die in dem gleichen Plattanabbild enthalten sind, eingehängt werden können. Für ein Plattenabbild, bei dem das Wurzeldateisystem für den ersten Systemstart formatiert ist, könnte es gewünscht sein, automatisch ein /usr/ auf diese Art vorzuerstellen, so dass die Partition »usr« darüber eingehängt werden kann.
Ziehen Sie systemd-tmpfiles(8) mit der Option --image= in Betracht, um andere, komplexere Verzeichnishierarchien (sowie andere Inodes) mit granularerer Steuerung der Eigentümerschaft, der Zugriffsmodi und anderer Datei-Attribute zu erstellen.
Encrypt=
Die LUKS2-UUID wird automatisch aus der Partitions-UUID auf eine stabile Art abgeleitet. Falls »key-file« oder »key-file+tpm2« verwandt wird, wird ein Schlüssel aus dem LUKS2-Superblock hinzufügt, der mit der Option --key-file= von systemd-repart konfiguriert werden kann. Falls »tpm2« oder »key-file+tpm2« verwandt wird, wird ein Schlüssel aus dem LUKS2-Superblock hinzugefügt, der bei dem lokalen TPM2-Chip registriert wird, wie dies mit den Optionen --tpm2-device= und --tpm2-pcrs= von systemd-repart konfiguriert werden kann.
Falls verwandt, dann wird die Größenzuweisungslogik leicht geändert, da die implizite minimalen Größenbegrenzungen von Format= und CopyBlocks= um den für den LUKS2-Superblock benötigten Platz erhöht werden (siehe oben).
Diese Option hat keine Auswirkung, falls die Partition bereits existiert.
Verity=
Eine passende Verity-Partition ist eine Partition, mit dem gleichen Verity-Übereinstimmungsschlüssel (wie mittels VerityMatchKey= konfiguriert).
Falls nicht explizit konfiguriert, wird die UUID der Datenpartition auf die ersten 128 bit des Verity-Wurzel-Hashes gesetzt. Ähnlich wird bei fehlender Konfiguration die UUID der Hash-Partition auf die abschließenden 128 bit des Verity-Wurzel-Hashes gesetzt. Der Verity-Wurzel-Hash selbst wird in die Ausgabe von systemd-repart(8) mit aufgenommen.
Diese Option hat keine Auswirkung, falls die Partition bereits existiert.
Die Verwendung dieser Option zusammen mit Encrypt= wird nicht unterstützt.
Für jeden eindeutigen Wert VerityMatchKey=, muss eine einzelne Verity-Datenpartition (»Verity=data«) und eine einzelne Verity-Hash-Partition (»Verity=hash«) definiert sein.
VerityMatchKey=
FactoryReset=
Flags=
NoAuto=, ReadOnly=, GrowFileSystem=
Falls Flags= zusammen mit einem oder mehreren aus NoAuto=/ReadOnly=/GrowFileSystem= verwandt wird, steuern die letzteren den Wert der relevanten Schalter, d.h. die abstrakten Einstellungen NoAuto=/ReadOnly=/GrowFileSystem= setzten die relevanten Bits der systemnahen Einstellungen Flags= außer Kraft.
Beachten Sie, dass die drei Schalter nur die automatische Einhängung von Partitionen betreffen, wie sie von systemd-gpt-auto-generator(8) oder der Option --image= von verschiedenen Befehlen (wie systemd-nspawn(1)) implementiert ist. Sie hat bei expliziten Einhängungen, wie sie über mount(8) oder fstab(5) erfolgen, keine Auswirkungen.
Falls für eine Partition sowohl Bit 50 als auch Bit 59 gesetzt sind (d.h. die Partition ist sowohl schreibgeschützt markiert als auch zum Vergrößern), hat letzteres typischerweise keine Auswirkung: der Schreibschutz-Schalter hat bei den meisten Werkzeugen, die diese Schalter lesen, Vorrang, und da das Vergrößern das Schreiben der Partition einschließt, wird es konsequent ignoriert.
NoAuto= ist standardmäßig ausgeschaltet. ReadOnly= ist für Verity-Partitionstypen standardmäßig eingeschaltet und für alle anderen ausgeschaltet. GrowFileSystem= ist für alle Partitionstypen eingeschaltet, die dies unterstützen, außer falls die Partition schreibgeschützt markiert ist (und ist damit für Verity-Partitionen effektiv standardmäßig ausgeschaltet).).
SplitName=
KENNZEICHNER¶
In den Label=-, CopyBlocks=-, CopyFiles=-, MakeDirectories=-, SplitName=-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. |
"%A" | Betriebssystemabbildversion | Die Betriebssystemabbildversionskennzeichnung des laufenden Systems, wie aus dem Feld IMAGE_VERSION= in /etc/os-release ausgelesen. Falls nicht gesetzt, wird es die leere Zeichenkette. Siehe os-release(5) für weitere Informationen. |
"%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. |
"%M" | Betriebssystemabbildkennung | Die Betriebssystemabbildkennung des laufenden Systems, wie aus dem Feld IMAGE_ID= in /etc/os-release ausgelesen. Falls nicht gesetzt, wird es die leere Zeichenkette. Siehe os-release(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. |
"%T" | Verzeichnis für temporäre Dateien | Dies ist entweder /tmp oder der Pfad, auf den »$TMPDIR«, »$TEMP« oder »$TMP« gesetzt ist. (Beachten Sie, dass das Verzeichnis ohne abschließenden Schrägstrich angegeben werden kann.) |
"%V" | Verzeichnis für größere und dauerhafte temporäre Dateien | Dies ist entweder /var/tmp oder der Pfad, auf den »$TMPDIR«, »$TEMP« oder »$TMP« gesetzt ist. (Beachten Sie, dass das Verzeichnis ohne abschließenden Schrägstrich angegeben werden kann.) |
"%%" | Einzelnes Prozentzeichen | Verwenden Sie »%%« anstelle von »%«, um ein einzelnes Prozentzeichen anzugeben. |
Zusätzlich werden für die Einstellung SplitName= die folgenden Kennzeichner verstanden:
Tabelle 3. Verfügbare Kennzeichner
Kennzeichner | Bedeutung | Details |
"%T" | Partitionstyp-UUID | Die Partitionstyp-UUID, wie mit Type= konfiguriert |
"%t" | Partitionstypkennzeichner | Der Partitionstypkennzeichner, der der Partitionstyp-UUID entspricht |
"%U" | Partitions-UUID | Die Partitions-UUID, wie mit UUID= konfiguriert |
"%n" | Partitionsnummer | Die der Partition zugewiesene Partitionsnummer |
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
Beispiel 4. Erstellen einer Daten- und Verity-Partition aus einem Betriebssystembaum
Nehmen wir an, dass ein Betriebssystembaum unter /var/tmp/os-tree vorliegt, der in einer Wurzelpartition zusammen mit einer passenden Verity-Partition paketiert werden soll. Wir können dann Folgendes durchführen:
# 50-root.conf [Partition] Type=root CopyFiles=/var/tmp/os-tree Verity=data VerityMatchKey=root
# 60-root-verity.conf [Partition] Type=root-verity Verity=hash VerityMatchKey=root
SIEHE AUCH¶
systemd(1), systemd-repart(8), sfdisk(8), systemd-cryptenroll(1)
ANMERKUNGEN¶
- 1.
- Spezifikation für auffindbare Partitionen
Ü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 252 |