SFDISK(8) | System-Administration | SFDISK(8) |
BEZEICHNUNG¶
sfdisk - eine Plattenpartitionstabelle anzeigen oder verändern
ÜBERSICHT¶
sfdisk [options] device [-N partition-number]
sfdisk [options] command
BESCHREIBUNG¶
sfdisk is a script-oriented tool for partitioning any block device. It runs in interactive mode if executed on a terminal (stdin refers to a terminal).
Seit Version 2.26 unterstützt sfdisk Festplattenbezeichnungen im Stil von MBR (DOS), GPT, SUN und SGI, jedoch ist die CHS-Addressierung (Zylinder-Kopf-Sektor) nicht mehr möglich. CHS war für Linux nie von Bedeutung, daher ergibt dieses Adressierungskonzept für neue Geräte keinen Sinn.
sfdisk protects the first disk sector when create a new disk label. The option --wipe always disables this protection. Note that fdisk(8) and cfdisk(8) completely erase this area by default.
sfdisk (since version 2.26) aligns the start and end of partitions to block-device I/O limits when relative sizes are specified, when the default values are used or when multiplicative suffixes (e.g., MiB) are used for sizes. It is possible that partition size will be optimized (reduced or enlarged) due to alignment if the start offset is specified exactly in sectors and partition size relative or by multiplicative suffixes.
Es wird empfohlen, den Startversatz überhaupt nicht anzugeben und alle Partitionsgrößen in MiB, GiB (oder so). In diesem Fall wird sfdisk alle Partitionen an Blockgerät-E/A-Begrenzungen ausrichten (oder wenn die E/A-Begrenzungen zu klein sind, dann an Megabyte-Grenzen, um das Plattenlayout portabel zu halten). Falls dieses Vorgabeverhalten nicht gewünscht ist (normalerweise für sehr kleine Partitionen), dann geben Sie den Versatz und die Größe in Sektoren an. In diesem Fall folgt sfdisk den angegebenen Nummern völlig ohne irgendwelche Optimierungen.
sfdisk does not create the standard system partitions for SGI and SUN disk labels like fdisk(8) does. It is necessary to explicitly create all partitions including whole-disk system partitions.
sfdisk uses BLKRRPART (reread partition table) ioctl to make sure that the device is not used by system or other tools (see also --no-reread). It’s possible that this feature or another sfdisk activity races with systemd-udevd(8). The recommended way how to avoid possible collisions is to use --lock option. The exclusive lock will cause systemd-udevd to skip the event handling on the device.
Die Eingabeaufforderung von sfdisk ist lediglich ein Hinweis für Benutzer und eine angezeigte Partitionsnummer bedeutet nicht, dass der zugehörige Eintrag in der Partitionstabelle erzeugt wird (sofern -N nicht angegeben ist), insbesondere für Tabellen mit Lücken.
BEFEHLE¶
Die Befehle schließen sich gegenseitig aus.
[-N Partitionsnummer] Gerät
Wenn die Option -N angegeben ist, werden die Änderungen auf die Partition angewendet, auf welche die Partitionsnummer verweist. Nicht angegebene Felder der Partition werden nicht verändert.
Beachten Sie, dass Sie mit -N auch ungenutzte Partitionen bearbeiten können. Beispielsweise enthält der MBR stets vier Partitionen, aber die Anzahl der tatsächlich genutzten Partitionen kann kleiner sein. In diesem Fall folgt sfdisk den Standardwerten der Partitionstabelle und wendet nicht die voreingestellten Werte auf die mit -N angegebenen ungenutzten Partitionen an. Siehe auch --append.
-A, --activate Gerät [Partitionsnummer...]
Der Aktivierungsbefehl wird nur für MBR und PMBR unterstützt. Falls eine GPT-Festplattenbezeichnung erkannt wird, dann gibt sfdisk eine Warnung aus und schaltet automatisch auf PMBR um.
Falls keine Partitionsnummer angegeben ist, werden alle Partitionen aufgelistet, die als bootfähig markiert sind.
--backup-pt-sectors Gerät
--delete Gerät [Partitionsnummer...]
-d, --dump Gerät
-g, --show-geometry [Gerät...]
-J, --json Gerät
-l, --list [Gerät...]
-F, --list-free [Gerät...]
--part-attrs Gerät Partitionsnummer [Attribute]
Bit 0 (RequiredPartition)
Bit 1 (NoBlockIOProtocol)
Bit 2 (LegacyBIOSBootable)
Bits 3-47
Bits 48-63
--part-label Gerät Partitionsnummer [Bezeichnung]
--part-type Gerät Partitionsnummer [Typ]
Das Argument Typ ist hexadezimal für MBR, eine GUID für GPT, ein Typ-Alias (beispielsweise »linux«) oder ein Typ-Kürzel (beispielsweise »L«). Für die Abwärtskompatibilität haben die Optionen -c und --id die gleiche Bedeutung wie diese.
--part-uuid Gerät Partitionsnummer [UUID]
--disk-id Gerät [Kennung]
-r, --reorder Gerät
-s, --show-size [_Gerät...]
-T, --list-types
-V, --verify [Gerät...]
--relocate Aktion Gerät
gpt-bak-std
gpt-bak-mini
OPTIONEN¶
-a, --append
Beachten Sie, dass eine ungenutzte Partition in diesem Fall wiederverwendet werden kann, obwohl sie nicht die letzte in der Partitionstabelle ist. Siehe auch -N, wie Sie einen Eintrag für die Partitionstabelle angeben können.
-b, --backup
--color[=wann]
-f, --force
--Linux
--lock[=Modus]
-n, --no-act
--no-reread
--no-tell-kernel
-O, --backup-file Pfad
--move-data[=Pfad]
Der optionale Pfad gibt den Namen der Protokolldatei an. Die Protokolldatei enthält Informationen zu allen Lese-/Schreibvorgängen der Partitionsdaten. Das Wort »@default« als Pfad zwingt sfdisk, ~/sfdisk-<Gerätename>.move für das Protokoll zu verwenden. Das Protokoll ist seit Version 2.35 optional.
Beachten Sie, dass diese Aktion riskant und nicht atomar ist. Vergessen Sie nicht, eine Sicherungskopie Ihrer Daten anzulegen!
Siehe auch --move-use-fsync.
In dem nachfolgenden Beispiel erstellt der erste Befehl einen freien Bereich der Größe 100 MiB vor der ersten Partition und verschiebt die darin enthaltenen Daten (z.B. ein Dateisystem). Der nächste Befehl erstellt eine neue Partition aus dem freien Bereich (bei Versatz 2048) und der letzte Befehl sortiert die Partitionen neu, so dass sie auf die Platten-Reihenfolge passen (der ursprüngliche sdc1 wird sdc2 werden).
echo '+100M,' | sfdisk --move-data /dev/sdc -N 1
echo '2048,' | sfdisk /dev/sdc --append
sfdisk /dev/sdc --reorder
--move-use-fsync
-o, --output Liste
Die voreingestellte Liste der Spalten kann erweitert werden, indem Sie die Liste im Format +Liste angeben (beispielsweise -o +UUID).
-q, --quiet
-u, --unit S
-X, --label Typ
-Y, --label-nested Typ
-w, --wipe wann
-W, --wipe-partitions wann
-v, --version
-h, --help
EINGABEFORMATE¶
sfdisk supports two input formats and generic header lines.
Kopfzeilen¶
Die optionalen Kopfzeilen geben generische Informationen an, die für die Partitionstabelle gelten. Das Kopfzeilenformat lautet:
<name>: <value>
Folgende Kopfzeilen werden derzeit akzeptiert:
unit
label
label-id
first-lba
last-lba
table-length
grain
sector-size
Beachten Sie, dass Sie Kopfzeilen in der Eingabe nur vor der ersten Partition angeben können.
Unnamed-fields-Format¶
Start Größe Typ bootfähig
wobei jede Zeile einen Partitionsdeskriptor darstellt.
Felder werden durch Leerraum, Kommata (empfohlen) oder Semikola getrennt, möglicherweise gefolgt von Leerraum; Leerraum am Anfang und Ende wird ignoriert. Zahlen können oktal, dezimal oder hexadezimal angegeben werden, die Vorgabe ist dezimal. Wenn ein Feld fehlt, leer oder mit »-« angegeben ist, wird ein Vorgabewert verwendet. Wenn aber die Option -N angegeben wird (eine einzelne Partition ändern), ist die Vorgabe für jedes Feld sein vorheriger Wert.
Der Vorgabewert von Start ist der erste nicht zugewiesene Sektor, der entsprechend der E/A-Begrenzungen ausgerichtet ist. Der Vorgabe-Start-Versatz für die erste Partition ist 1 MiB. Falls auf den Versatz eine multiplikative Endung folgt (KiB, MiB, GiB, TiB, PiB, EiB, ZiB und YiB), dann wird die Zahl als Versatz in Bytes interpretiert. Seit Version 2.38 kann bei der Angabe der Option -N (Änderung einer einzelnen Partition) ein »+« angegeben werden, um die Partition durch Verschieben der Startposition zu vergrößern, falls vor der Partition freier Platz verfügbar ist.
Der Vorgabewert von Größe meint »so viel wie möglich«, d.h. bis zur nächsten Partition oder dem Ende des Geräts. Ein numerisches Argument wird standardmäßig als Anzahl von Sektoren interpretiert; wird aber die Größe von einem der multiplikativen Endungen (KiB, MiB, GiB, TiB, PiB, EiB, ZiB und YiB) gefolgt, dann wird die Zahl als Größe der Partition in Bytes interpretiert und wird dann entsprechend der E/A-Begrenzungen ausgerichtet. Ein »+« kann statt einer Zahl verwendet werden, um die Partition so weit wie möglich zu vergrößern. Beachten Sie, dass »+« äquivalent zu dem Standardverhalten für eine neue Partition ist. Bestehende Partitionen werden wie notwendig in der Größe verändert.
Der Partitions-Typ wird für MBR (DOS) in hexadezimaler Notation angegeben, wobei das Präfix 0x optional ist. Für GPT wird er als GUID-Zeichenkette oder als Kürzel oder als Alias angegeben. Es wird empfohlen, zwei Buchstaben für MBR-Hexadezimalcodes zu verwenden, um Kollisionen zwischen dem als veraltet anzusehenden Kürzel »E« und »0E« für den MBR-Hexadezimalcode zu vermeiden. Aus Gründen der Abwärtskompatibilität versucht sfdisk, in Partitionierungsskripten den Typ als erste Möglichkeit als Kürzel anzusehen, obwohl es an anderen Stellen versucht, Kürzel als letzte Möglichkeit zu probieren.
Seit Version 2.36 unterstützt Libfdisk Partitionstypen-Aliase als Ergänzung zu den Kürzeln. Ein Alias ist ein einfaches, menschenlesbares Wort (beispielsweise »linux«).
Seit Version 2.37 unterstützt Libfdisk Partitionstypnamen als Eingabe, wobei Groß- oder Kleinschreibung sowie alle nicht alphanumerischen Zeichen und Nicht-Ziffern ignoriert werden (zum Beispiel ist »Linux /usr x86« gleichbedeutend mit »linux usr-x86«).
Unterstützte Kürzel und Aliase:
L - alias 'linux'
S - alias 'swap'
Ex - alias 'extended'
H - alias 'home'
U - alias 'uefi'
R - alias 'raid'
V - alias 'lvm'
Der Vorgabe-Typ-Wert ist linux.
Das Kürzel »X« für eine erweiterte Linux-Partition (85) ist als veraltet anzusehen; verwenden Sie stattdessen »Ex«.
bootfähig wird als [*|-] angegeben, standardmäßig nicht bootfähig. Der Wert des Feldes ist für Linux irrelevant – wenn Linux läuft, ist es bereits gestartet – aber er könnte für bestimmte Systemstartprogramme und für andere Betriebssysteme eine Rolle spielen.
Named-fields-Format¶
Dieses Format ist lesbarer, robuster, erweiterbarer und erlaubt es, zusätzliche Informationen (z.B. eine UUID) anzugeben. Es wird empfohlen, dieses Format zu verwenden, um Ihre Skripte lesbarer zu halten.
[Gerät :] Name[=Wert],
...
Das Gerät-Feld ist optional. sfdisk ermittelt die Partitionsnummer aus dem Gerätenamen. Es erlaubt die Angabe der Partitionen in willkürlicher Reihenfolge. Diese Funktionalität wird meist von --dump verwendet. Verwenden Sie diese nicht, wenn Sie sich nicht sicher sind.
Der Wert kann zwischen Anführungszeichen angegeben werden (zum Beispiel name="Partitionsname"). Die Felder start= und size= unterstützen '+' und '-' auf die gleiche Weise wie das Unnamed-fields-Format.
Derzeit werden folgende Felder unterstützt:
start=Nummer
size=Zahl
bootfähig
attrs=Zeichenkette
uuid=Zeichenkette
name=Zeichenkette
type=Code
LEERE FESTPLATTENBEZEICHNUNGEN¶
sfdisk does not create partition table without partitions by default. The lines with partitions are expected in the script by default. The empty partition table has to be explicitly requested by "label: <name>" script header line without any partitions lines. For example:
echo 'label: gpt' | sfdisk /dev/sdb
eine leere GPT-Partitionstabelle. Beachten Sie, dass --append diese Funktionalität deaktiviert.
SICHERUNG DER PARTITIONSTABELLE¶
Es wird empfohlen, das Layout Ihrer Geräte zu sichern. sfdisk unterstützt dies auf zwei Arten:
Ausgabe in Sfdisk-kompatiblem Format¶
Verwenden Sie die Option --dump, um eine Beschreibung der Geräteaufteilung in einer Textdatei zu speichern. Das Speicherformat ist für die spätere Verarbeitung in sfdisk geeignet. Beispiel:
sfdisk --dump /dev/sda > sda.dump
Dies kann später wie folgt zurückgespielt werden:
sfdisk /dev/sda < sda.dump
Beachten Sie, dass sfdisk Partitionstypen und Partitions-UUIDs vollständig wiederherstellt. Dies könnte potenziell problematisch werden, wenn Sie die gleiche Aufteilung auf mehrere Datenträger duplizieren, weil dadurch eine UUID mehrfach auf dem System vorhanden sein könnte.
Vollständige binäre Sicherung¶
Falls Sie eine komplette (binäre) Sicherungskopie aller Sektoren, in denen die Partitionstabelle gespeichert ist, machen möchten, dann verwenden Sie die Option --backup-pt-sectors. Sie schreibt die Sektoren in Dateien ~/sfdisk-<Gerät>-<Versatz>.bak. Der Vorgabename der Sicherungsdatei kann mit der Option --backup-file geändert werden. Die Sicherungsdatei enthält nur rohe Daten vom Gerät. Zum Beispiel:
sfdisk --backup-pt-sectors /dev/sda
Der GPT-Header kann später folgendermaßen wiederhergestellt werden:
dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda
seek=$((0x00000200)) bs=1 conv=notrunc
Sie können auch die Option --backup verwenden, um die gleiche Sicherung unmittelbar nach dem Start für andere sfdisk-Befehle zu erstellen. Beispielsweise sichern Sie wie folgt die Partitionstabelle, bevor alle Partitionen daraus gelöscht werden:
sfdisk --backup --delete /dev/sda
Das gleiche Dateisicherungskonzept wird von wipefs(8) verwendet.
Beachten Sie, dass die Option -I zur Wiederherstellung von Sektoren in sfdisk seit Version 2.26 nicht mehr verfügbar ist. Die benötigte Funktionalität stellt dd(1) bereit.
FARBEN¶
Die farbige Darstellung der Ausgabe wird über die Funktionen in terminal-colors.d(5) gesteuert. Die implizierte Einfärbung kann deaktiviert werden, indem Sie folgende (leere) Datei anlegen:
/etc/terminal-colors.d/sfdisk.disable
für den Befehl sfdisk oder für alle Befehle mit
/etc/terminal-colors.d/disable
Die benutzerspezifischen Dateien $XDG_CONFIG_HOME/terminal−colors.d oder $HOME/.config/terminal−colors.d setzen die globale Einstellung außer Kraft.
Beachten Sie, dass die Einfärbung der Ausgabe standardmäßig aktiviert sein könnte und in diesem Fall die terminal-colors.d-Verzeichnisse noch nicht zwangsläufig vorhanden sein müssen.
Folgende logische Farbnamen werden von sfdisk unterstützt:
header
warn
welcome
UMGEBUNGSVARIABLEN¶
SFDISK_DEBUG=all
LIBFDISK_DEBUG=all
LIBBLKID_DEBUG=all
LIBSMARTCOLS_DEBUG=all
LOCK_BLOCK_DEVICE=<Modus>
ANMERKUNGEN¶
Seit Version 2.26 sind die Optionen -R oder --re-read, welche das erneute Einlesen der Partitionstabelle durch den Kernel erzwingen, in sfdisk nicht mehr verfügbar. Verwenden Sie stattdessen blockdev --rereadpt.
Seit Version 2.26 sind die Optionen --DOS, --IBM, --DOS-extended, --unhide, --show-extended, --cylinders, --heads, --sectors, --inside-outer und --not-inside-outer nicht mehr verfügbar.
BEISPIELE¶
sfdisk --list --label-nested=mbr /dev/sda
echo -e ',10M,L\n,10M,L\n,+,\n' | sfdisk /dev/sdc
echo -e 'size=10M, type=L\n size=10M, type=L\n size=+\n' | sfdisk /dev/sdc
echo -e 'type=swap' | sfdisk -N 3 /dev/sdc
sfdisk --part-type /dev/sdc 3 swap
sfdisk --delete /dev/sdc 2
echo "+,+" | sfdisk -N 3 --move-data /dev/sdc
AUTOREN¶
Karel Zak <kzak@redhat.com>
Die aktuelle sfdisk-Implementierung basiert auf dem ursprünglichen sfdisk von Andries E. Brouwer.
SIEHE AUCH¶
FEHLER MELDEN¶
Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem auf <https://github.com/util-linux/util-linux/issues>.
VERFÜGBARKEIT¶
Der Befehl sfdisk ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv <https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann.
2024-04-03 | util-linux 2.40 |