Sgdisk: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| − | + | <code>sgdisk</code> erledigt dieselben Aufgaben wie <code>gdisk</code>, wird aber vollständig über Optionen gesteuert. Damit ist es das Werkzeug der Wahl für Skripte und für die automatisierte Installation. | |
| − | + | ==Achtung: sgdisk schreibt ohne Rückfrage== | |
| − | ''' | + | *<code>sgdisk</code> kennt keinen Schreibbefehl. Eine im Arbeitsspeicher veränderte GPT wird beim Beenden des Programms '''automatisch''' auf den Datenträger geschrieben. |
| − | + | *Ein falsch getippter Aufruf kann eine Platte unbrauchbar machen. Jeder Aufruf mit ändernden Optionen gehört vorher gelesen. | |
| + | *Zum gefahrlosen Ausprobieren gibt es <code>-P</code>: Damit wird alles berechnet und angezeigt, aber nichts geschrieben. | ||
| − | + | # sgdisk -P -n 1:0:+512M /dev/sdb | |
| − | + | ==Syntax== | |
| − | + | # sgdisk OPTIONEN DEVICE | |
| − | |||
| − | + | *Mehrere Optionen lassen sich in einem Aufruf kombinieren. Das ist der übliche Weg, weil dann nur einmal geschrieben wird: | |
| − | + | # sgdisk -n 1:0:+512M -t 1:8300 -c 1:system /dev/sdb | |
| − | + | *Die vollständige Beschreibung liefert die Handbuchseite: | |
| − | + | $ man sgdisk | |
| − | == | + | ==Optionen ohne Änderung an der GPT== |
{| class="wikitable" | {| class="wikitable" | ||
| + | ! Option !! Lang !! Wirkung | ||
|- | |- | ||
| − | + | | <code>-p</code> || <code>--print</code> || Partitionstabelle anzeigen | |
|- | |- | ||
| − | | | + | | <code>-i PARTNUM</code> || <code>--info</code> || Einzelheiten zu einer Partition: GUIDs, Sektoren, Attribute, Name |
|- | |- | ||
| − | | | + | | <code>-L</code> || <code>--list-types</code> || bekannte Typcodes auflisten |
|- | |- | ||
| − | | | + | | <code>-v</code> || <code>--verify</code> || Platte prüfen: Prüfsummen, Überlappungen, Lage der Sicherung |
|- | |- | ||
| − | | | + | | <code>-D</code> || <code>--display-alignment</code> || eingestellten Ausrichtungswert anzeigen |
|- | |- | ||
| − | | | + | | <code>-P</code> || <code>--pretend</code> || alles berechnen, aber nichts schreiben |
|- | |- | ||
| − | | ''- | + | | <code>-?</code> || <code>--help</code> || Hilfetext |
| + | |} | ||
| + | |||
| + | ==Optionen mit Änderung an der GPT== | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Option !! Lang !! Wirkung | ||
| + | |- | ||
| + | | <code>-o</code> || <code>--clear</code> || neue, leere GPT anlegen | ||
| + | |- | ||
| + | | <code>-n PARTNUM:ANFANG:ENDE</code> || <code>--new</code> || neue Partition anlegen | ||
| + | |- | ||
| + | | <code>-N PARTNUM</code> || <code>--largest-new</code> || Partition über den größten freien Bereich anlegen | ||
| + | |- | ||
| + | | <code>-d PARTNUM</code> || <code>--delete</code> || Partition löschen | ||
| + | |- | ||
| + | | <code>-t PARTNUM:TYPCODE</code> || <code>--typecode</code> || Typcode setzen | ||
| + | |- | ||
| + | | <code>-c PARTNUM:NAME</code> || <code>--change-name</code> || Namen der Partition setzen | ||
| + | |- | ||
| + | | <code>-A PARTNUM:AKTION:BIT</code> || <code>--attributes</code> || Attribut-Bits setzen, löschen oder anzeigen | ||
| + | |- | ||
| + | | <code>-u PARTNUM:GUID</code> || <code>--partition-guid</code> || GUID einer Partition setzen, <code>R</code> für zufällig | ||
| + | |- | ||
| + | | <code>-U GUID</code> || <code>--disk-guid</code> || GUID der Platte setzen, <code>R</code> für zufällig | ||
| + | |- | ||
| + | | <code>-G</code> || <code>--randomize-guids</code> || alle GUIDs neu erwürfeln | ||
| + | |- | ||
| + | | <code>-a WERT</code> || <code>--set-alignment</code> || Ausrichtung in Sektoren, Vorgabe 2048 | ||
| + | |- | ||
| + | | <code>-s</code> || <code>--sort</code> || Einträge nach Anfangssektor sortieren | ||
| + | |- | ||
| + | | <code>-r P1:P2</code> || <code>--transpose</code> || zwei Partitionseinträge vertauschen | ||
| + | |- | ||
| + | | <code>-e</code> || <code>--move-second-header</code> || Sicherung ans Plattenende schieben | ||
| + | |- | ||
| + | | <code>-b DATEI</code> || <code>--backup</code> || GPT in eine Datei sichern | ||
| + | |- | ||
| + | | <code>-l DATEI</code> || <code>--load-backup</code> || GPT aus einer Datei zurückladen | ||
| + | |- | ||
| + | | <code>-R ZIEL</code> || <code>--replicate</code> || Partitionstabelle auf eine zweite Platte übertragen | ||
| + | |- | ||
| + | | <code>-g</code> || <code>--mbrtogpt</code> || vorhandenen MBR in eine GPT umwandeln | ||
| + | |- | ||
| + | | <code>-m</code> || <code>--gpttombr</code> || GPT in einen MBR umwandeln | ||
| + | |- | ||
| + | | <code>-h LISTE</code> || <code>--hybrid</code> || Hybrid-MBR erzeugen | ||
| + | |- | ||
| + | | <code>-z</code> || <code>--zap</code> || GPT-Strukturen zerstören | ||
| + | |- | ||
| + | | <code>-Z</code> || <code>--zap-all</code> || GPT '''und''' MBR zerstören | ||
| + | |} | ||
| + | |||
| + | *<code>-g</code> löscht '''nicht''', sondern wandelt um. Zum Leeren einer Platte ist <code>-Z</code> gedacht. | ||
| + | *<code>-e</code> setzt keine Partition aktiv, sondern verschiebt den Sicherungs-Header. Gebraucht wird das, nachdem eine Platte oder ein LUN vergrößert wurde. | ||
| + | *<code>-h</code> erzeugt einen Hybrid-MBR. Der hält dieselbe Platte gleichzeitig für MBR- und GPT-partitioniert und ist eine dauerhafte Fehlerquelle – Finger weg, außer man weiß genau warum. | ||
| + | *<code>-r</code> vertauscht zwei Einträge und macht keine Löschung rückgängig. Ein Rückgängig gibt es nicht. | ||
| + | |||
| + | ==Eine Partition anlegen== | ||
| + | |||
| + | # sgdisk -n PARTNUM:ANFANG:ENDE /dev/sdb | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Feld !! Bedeutung | ||
|- | |- | ||
| − | | | + | | PARTNUM || Nummer des Eintrags, <code>0</code> nimmt den ersten freien |
| + | |- | ||
| + | | ANFANG || Startsektor, <code>0</code> nimmt den ersten freien ausgerichteten Sektor | ||
| + | |- | ||
| + | | ENDE || Endsektor, <code>0</code> nimmt den letzten verfügbaren; <code>+GRÖSSE</code> gibt die Länge an | ||
|} | |} | ||
| − | + | Damit ist die gebräuchliche Form: | |
| + | |||
| + | # sgdisk -n 1:0:+512M /dev/sdb 512 MiB, Lage automatisch | ||
| + | # sgdisk -n 2:0:+20G /dev/sdb 20 GiB direkt dahinter | ||
| + | # sgdisk -n 3:0:0 /dev/sdb der ganze Rest | ||
| + | |||
| + | *Ohne <code>-t</code> bekommt die Partition den Typ 8300 (Linux filesystem). | ||
| + | *Die Ausrichtung auf 2048 Sektoren, also 1 MiB, übernimmt sgdisk von selbst. Nur bei abweichenden Vorgaben braucht man <code>-a</code>. | ||
| + | |||
| + | ==Typcodes setzen== | ||
| + | |||
| + | # sgdisk -t 1:ef00 /dev/sdb | ||
| + | # sgdisk -t 2:8e00 /dev/sdb | ||
{| class="wikitable" | {| class="wikitable" | ||
| + | ! Code !! Bedeutung | ||
| + | |- | ||
| + | | 8300 || Linux filesystem | ||
|- | |- | ||
| − | + | | 8200 || Linux swap | |
|- | |- | ||
| − | | | + | | 8e00 || Linux LVM |
|- | |- | ||
| − | | | + | | fd00 || Linux RAID |
|- | |- | ||
| − | | | + | | ef00 || EFI System Partition |
|- | |- | ||
| − | | | + | | ef02 || BIOS boot partition |
| + | |} | ||
| + | |||
| + | Die vollständige Liste: | ||
| + | |||
| + | # sgdisk -L | ||
| + | |||
| + | ==Attribute setzen== | ||
| + | |||
| + | # sgdisk -A PARTNUM:AKTION:BIT /dev/sdb | ||
| + | |||
| + | *Aktionen sind unter anderem <code>set</code>, <code>clear</code>, <code>toggle</code> und <code>show</code>. | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Bit !! Bedeutung | ||
|- | |- | ||
| − | | | + | | 0 || erforderliche Partition, nicht löschen |
|- | |- | ||
| − | | | + | | 1 || vor EFI verbergen |
|- | |- | ||
| − | | | + | | 2 || legacy BIOS bootable |
|- | |- | ||
| − | | | + | | 60 || nur lesen |
| + | |- | ||
| + | | 63 || kein Automount | ||
|} | |} | ||
| − | == | + | # sgdisk -A 1:set:2 /dev/sdb legacy BIOS bootable setzen |
| − | + | # sgdisk -A 1:show /dev/sdb gesetzte Bits anzeigen | |
| + | |||
| + | ==Sichern und zurückspielen== | ||
| + | |||
| + | # sgdisk -b /root/sdb-gpt.bin /dev/sdb | ||
| + | |||
| + | *Die Datei enthält Protective MBR, Header, Sicherungs-Header und die Partitionseinträge. Sie gehört auf ein anderes Medium. | ||
| + | |||
| + | # sgdisk -l /root/sdb-gpt.bin /dev/sdb | ||
| − | + | ==Eine Partitionstabelle auf eine zweite Platte übertragen== | |
| − | + | Der klassische Fall vor dem Anlegen eines Verbunds aus zwei gleichen Platten: | |
| − | + | # sgdisk -R /dev/sdc /dev/sdb | |
| + | # sgdisk -G /dev/sdc | ||
| − | ''' | + | *Der erste Aufruf überträgt die Tabelle von <code>/dev/sdb</code> auf <code>/dev/sdc</code>. Das '''Ziel steht vorn''', die Quelle hinten. |
| + | *Der zweite Aufruf ist Pflicht: Ohne ihn tragen beide Platten dieselbe Platten-GUID und dieselben Partitions-GUIDs. Das System greift dann unter Umständen auf die falsche zu. | ||
| − | + | ==Eine Platte leeren== | |
| − | + | # sgdisk -Z /dev/sdb | |
| − | + | *<code>-Z</code> entfernt GPT und MBR, also auch die Sicherung am Plattenende. | |
| + | *<code>-z</code> lässt den MBR stehen. | ||
| + | *Danach ist die Aufteilung weg. Die Nutzdaten stehen zwar noch auf der Platte, sind ohne Tabelle aber nicht mehr ansprechbar. | ||
| − | + | ==Beispiele== | |
| − | + | Tabelle anzeigen: | |
| − | + | # sgdisk -p /dev/sdb | |
| − | + | Einzelheiten zur ersten Partition: | |
| − | + | # sgdisk -i 1 /dev/sdb | |
| − | + | Eine Platte in einem Aufruf komplett einrichten: | |
| − | + | # sgdisk -o \ | |
| + | -n 1:0:+512M -t 1:ef00 -c 1:EFI \ | ||
| + | -n 2:0:+1G -t 2:8300 -c 2:boot \ | ||
| + | -n 3:0:0 -t 3:8e00 -c 3:lvm \ | ||
| + | /dev/sdb | ||
| − | + | Vorher gefahrlos ansehen, was passieren würde: | |
| − | + | # sgdisk -P -o -n 1:0:+512M /dev/sdb | |
| − | + | Prüfen, was geworden ist: | |
| − | + | # sgdisk -v /dev/sdb | |
| − | + | # sgdisk -p /dev/sdb | |
| − | |||
| − | |||
| − | |||
Version vom 19. August 2026, 16:43 Uhr
sgdisk erledigt dieselben Aufgaben wie gdisk, wird aber vollständig über Optionen gesteuert. Damit ist es das Werkzeug der Wahl für Skripte und für die automatisierte Installation.
Achtung: sgdisk schreibt ohne Rückfrage
sgdiskkennt keinen Schreibbefehl. Eine im Arbeitsspeicher veränderte GPT wird beim Beenden des Programms automatisch auf den Datenträger geschrieben.- Ein falsch getippter Aufruf kann eine Platte unbrauchbar machen. Jeder Aufruf mit ändernden Optionen gehört vorher gelesen.
- Zum gefahrlosen Ausprobieren gibt es
-P: Damit wird alles berechnet und angezeigt, aber nichts geschrieben.
# sgdisk -P -n 1:0:+512M /dev/sdb
Syntax
# sgdisk OPTIONEN DEVICE
- Mehrere Optionen lassen sich in einem Aufruf kombinieren. Das ist der übliche Weg, weil dann nur einmal geschrieben wird:
# sgdisk -n 1:0:+512M -t 1:8300 -c 1:system /dev/sdb
- Die vollständige Beschreibung liefert die Handbuchseite:
$ man sgdisk
Optionen ohne Änderung an der GPT
| Option | Lang | Wirkung |
|---|---|---|
-p |
--print |
Partitionstabelle anzeigen |
-i PARTNUM |
--info |
Einzelheiten zu einer Partition: GUIDs, Sektoren, Attribute, Name |
-L |
--list-types |
bekannte Typcodes auflisten |
-v |
--verify |
Platte prüfen: Prüfsummen, Überlappungen, Lage der Sicherung |
-D |
--display-alignment |
eingestellten Ausrichtungswert anzeigen |
-P |
--pretend |
alles berechnen, aber nichts schreiben |
-? |
--help |
Hilfetext |
Optionen mit Änderung an der GPT
| Option | Lang | Wirkung |
|---|---|---|
-o |
--clear |
neue, leere GPT anlegen |
-n PARTNUM:ANFANG:ENDE |
--new |
neue Partition anlegen |
-N PARTNUM |
--largest-new |
Partition über den größten freien Bereich anlegen |
-d PARTNUM |
--delete |
Partition löschen |
-t PARTNUM:TYPCODE |
--typecode |
Typcode setzen |
-c PARTNUM:NAME |
--change-name |
Namen der Partition setzen |
-A PARTNUM:AKTION:BIT |
--attributes |
Attribut-Bits setzen, löschen oder anzeigen |
-u PARTNUM:GUID |
--partition-guid |
GUID einer Partition setzen, R für zufällig
|
-U GUID |
--disk-guid |
GUID der Platte setzen, R für zufällig
|
-G |
--randomize-guids |
alle GUIDs neu erwürfeln |
-a WERT |
--set-alignment |
Ausrichtung in Sektoren, Vorgabe 2048 |
-s |
--sort |
Einträge nach Anfangssektor sortieren |
-r P1:P2 |
--transpose |
zwei Partitionseinträge vertauschen |
-e |
--move-second-header |
Sicherung ans Plattenende schieben |
-b DATEI |
--backup |
GPT in eine Datei sichern |
-l DATEI |
--load-backup |
GPT aus einer Datei zurückladen |
-R ZIEL |
--replicate |
Partitionstabelle auf eine zweite Platte übertragen |
-g |
--mbrtogpt |
vorhandenen MBR in eine GPT umwandeln |
-m |
--gpttombr |
GPT in einen MBR umwandeln |
-h LISTE |
--hybrid |
Hybrid-MBR erzeugen |
-z |
--zap |
GPT-Strukturen zerstören |
-Z |
--zap-all |
GPT und MBR zerstören |
-glöscht nicht, sondern wandelt um. Zum Leeren einer Platte ist-Zgedacht.-esetzt keine Partition aktiv, sondern verschiebt den Sicherungs-Header. Gebraucht wird das, nachdem eine Platte oder ein LUN vergrößert wurde.-herzeugt einen Hybrid-MBR. Der hält dieselbe Platte gleichzeitig für MBR- und GPT-partitioniert und ist eine dauerhafte Fehlerquelle – Finger weg, außer man weiß genau warum.-rvertauscht zwei Einträge und macht keine Löschung rückgängig. Ein Rückgängig gibt es nicht.
Eine Partition anlegen
# sgdisk -n PARTNUM:ANFANG:ENDE /dev/sdb
| Feld | Bedeutung |
|---|---|
| PARTNUM | Nummer des Eintrags, 0 nimmt den ersten freien
|
| ANFANG | Startsektor, 0 nimmt den ersten freien ausgerichteten Sektor
|
| ENDE | Endsektor, 0 nimmt den letzten verfügbaren; +GRÖSSE gibt die Länge an
|
Damit ist die gebräuchliche Form:
# sgdisk -n 1:0:+512M /dev/sdb 512 MiB, Lage automatisch # sgdisk -n 2:0:+20G /dev/sdb 20 GiB direkt dahinter # sgdisk -n 3:0:0 /dev/sdb der ganze Rest
- Ohne
-tbekommt die Partition den Typ 8300 (Linux filesystem). - Die Ausrichtung auf 2048 Sektoren, also 1 MiB, übernimmt sgdisk von selbst. Nur bei abweichenden Vorgaben braucht man
-a.
Typcodes setzen
# sgdisk -t 1:ef00 /dev/sdb # sgdisk -t 2:8e00 /dev/sdb
| Code | Bedeutung |
|---|---|
| 8300 | Linux filesystem |
| 8200 | Linux swap |
| 8e00 | Linux LVM |
| fd00 | Linux RAID |
| ef00 | EFI System Partition |
| ef02 | BIOS boot partition |
Die vollständige Liste:
# sgdisk -L
Attribute setzen
# sgdisk -A PARTNUM:AKTION:BIT /dev/sdb
- Aktionen sind unter anderem
set,clear,toggleundshow.
| Bit | Bedeutung |
|---|---|
| 0 | erforderliche Partition, nicht löschen |
| 1 | vor EFI verbergen |
| 2 | legacy BIOS bootable |
| 60 | nur lesen |
| 63 | kein Automount |
# sgdisk -A 1:set:2 /dev/sdb legacy BIOS bootable setzen # sgdisk -A 1:show /dev/sdb gesetzte Bits anzeigen
Sichern und zurückspielen
# sgdisk -b /root/sdb-gpt.bin /dev/sdb
- Die Datei enthält Protective MBR, Header, Sicherungs-Header und die Partitionseinträge. Sie gehört auf ein anderes Medium.
# sgdisk -l /root/sdb-gpt.bin /dev/sdb
Eine Partitionstabelle auf eine zweite Platte übertragen
Der klassische Fall vor dem Anlegen eines Verbunds aus zwei gleichen Platten:
# sgdisk -R /dev/sdc /dev/sdb # sgdisk -G /dev/sdc
- Der erste Aufruf überträgt die Tabelle von
/dev/sdbauf/dev/sdc. Das Ziel steht vorn, die Quelle hinten. - Der zweite Aufruf ist Pflicht: Ohne ihn tragen beide Platten dieselbe Platten-GUID und dieselben Partitions-GUIDs. Das System greift dann unter Umständen auf die falsche zu.
Eine Platte leeren
# sgdisk -Z /dev/sdb
-Zentfernt GPT und MBR, also auch die Sicherung am Plattenende.-zlässt den MBR stehen.- Danach ist die Aufteilung weg. Die Nutzdaten stehen zwar noch auf der Platte, sind ohne Tabelle aber nicht mehr ansprechbar.
Beispiele
Tabelle anzeigen:
# sgdisk -p /dev/sdb
Einzelheiten zur ersten Partition:
# sgdisk -i 1 /dev/sdb
Eine Platte in einem Aufruf komplett einrichten:
# sgdisk -o \
-n 1:0:+512M -t 1:ef00 -c 1:EFI \
-n 2:0:+1G -t 2:8300 -c 2:boot \
-n 3:0:0 -t 3:8e00 -c 3:lvm \
/dev/sdb
Vorher gefahrlos ansehen, was passieren würde:
# sgdisk -P -o -n 1:0:+512M /dev/sdb
Prüfen, was geworden ist:
# sgdisk -v /dev/sdb # sgdisk -p /dev/sdb