Sgdisk: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
== sgdisk ==
+
<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.
  
Das Programm sgdisk führt die gleichen Aufgaben wie gdisk durch, wird aber komplett über mitgegebene Optionen gesteuert und ist in Skripten besser geeignet als gdisk.
+
'''Achtung:''' <code>sgdisk</code> kennt keinen Schreibbefehl. Eine im Arbeitsspeicher veränderte GPT wird beim Beenden automatisch auf den Datenträger geschrieben. Ein falsch getippter Aufruf kann eine Platte unbrauchbar machen. Zum gefahrlosen Ausprobieren dient die Option <code>-P</code>: damit wird alles berechnet und angezeigt, aber nichts geschrieben.
  
'''Achtung!'''
+
Beim Aufruf steht immer der Datenträger am Ende. Mehrere Optionen lassen sich in einem Aufruf kombinieren – das ist der übliche Weg, weil dann nur einmal geschrieben wird.
Bei der Beendigung schreibt sgdisk die GPT ohne Rückfrage auf den Datenträger!
 
  
Das Programm kennt ~ im Gegensatz zu gdisk ~ keinen expliziten Schreibbefehl. Vielmehr wird eine eingelesene und dann im Arbeitsspeicher geänderte GPT bei der Beendigung des Programms automatisch auf den Datenträger geschrieben und bei falschem Einsatz wird dieser evtl. unbenutzbar. Der Aufruf von sgdisk mit Optionen, welche die GPT ändern, sollte gut überlegt werden.
+
=Alle Optionen anzeigen=
 +
*sgdisk --help
  
Das Programm kennt aber ein Schreibverbot als Option ''-P''; mit dem Einsatz dieser Option entfällt generell das Schreiben einer veränderten GPT auf den Datenträger.
+
=Handbuchseite=
 +
*man sgdisk
  
=== Syntax ===
+
=Partitionstabelle anzeigen=
Beim Aufruf muss immer ein zu bearbeitender Datenträger an der Stelle ''DEVICE'' angegeben werden:
+
*sgdisk -p /dev/sdb
  
sudo sgdisk OPTIONEN DEVICE
+
=Einzelheiten zu einer Partition=
 +
Zeigt GUIDs, Start- und Endsektor, Attribute und Namen der Partition 1.
 +
*sgdisk -i 1 /dev/sdb
  
Eine Erklärung aller Optionen mit ausführlicher Information liefern die Programmierer-Seiten, die Manpage des Programms sowie auszugsweise die folgenden Tabellen:
+
=Bekannte Typcodes auflisten=
 +
*sgdisk -L
  
''man sgdisk''
+
=Platte prüfen=
 +
Vergleicht primäre und gesicherte Strukturen, prüft die Prüfsummen und meldet Überlappungen.
 +
*sgdisk -v /dev/sdb
  
=== Optionen ===
+
=Nichts schreiben, nur zeigen=
 +
<code>-P</code> berechnet die Änderung und zeigt das Ergebnis, schreibt aber nicht. Zum Testen jedes ändernden Aufrufs vorschalten.
 +
*sgdisk -P -n 1:0:+512M /dev/sdb
  
==== sgdisk: Auswahl von Optionen ohne Veränderungen an einer GPT ====
+
=Neue, leere GPT anlegen=
 +
*sgdisk -o /dev/sdb
 +
 
 +
=Eine Partition anlegen=
 +
Die Syntax ist <code>-n PARTNUM:ANFANG:ENDE</code>. Eine <code>0</code> bedeutet an jeder der drei Stellen die Vorgabe: erster freier Eintrag, erster freier ausgerichteter Sektor, letzter verfügbarer Sektor. Ohne <code>-t</code> bekommt die Partition den Typ 8300. Die Ausrichtung auf 2048 Sektoren übernimmt sgdisk selbst.
 +
 
 +
512 MiB, Lage automatisch:
 +
*sgdisk -n 1:0:+512M /dev/sdb
 +
 
 +
20 GiB direkt dahinter:
 +
*sgdisk -n 2:0:+20G /dev/sdb
 +
 
 +
Der ganze Rest der Platte:
 +
*sgdisk -n 3:0:0 /dev/sdb
 +
 
 +
=Typcode setzen=
 +
Ändert nur die Kennung, nicht die Daten der Partition.
 +
*sgdisk -t 1:ef00 /dev/sdb
 +
 
 +
Die gebräuchlichen Codes:
  
 
{| class="wikitable"
 
{| class="wikitable"
 +
! Code !! Bedeutung
 
|-
 
|-
! Option !! Beschreibung
+
| 8300 || Linux filesystem
 
|-
 
|-
| ''-?'' || Ausgabe eines Hilfetextes der zur Verfügung stehenden Kommandos
+
| 8200 || Linux swap
 
|-
 
|-
| ''-a WERT'' || Alignment-Wert einstellen. WERT ist eine Anzahl von logischen Sektoren, z.B. 1024, 2048. Man benötigt diese Option bei der Bearbeitung einer GPT mit nicht der Vorgabe entsprechenden Partitionen bei der Anlage neuer Partitionen.
+
| 8e00 || Linux LVM
 
|-
 
|-
| ''-b DATEINAME'' || Externe binäre Backup-Datei mit dem als DATEINAME angegebenem Namen der GPT des Datenträgers erzeugen. Inhalt: "Protective/Hybrid MBR", GPT-Header, GPT-Backup-Header, Feld mit Einträgen für Partitionen
+
| fd00 || Linux RAID
 
|-
 
|-
| ''-i PARTNUM'' || Detaillierte Informationen zur Partition PARTNUM anzeigen. (1 ≤ PARTNUM ≤ 128)
+
| ef00 || EFI System Partition
 
|-
 
|-
| ''-L'' || Bekannte Partitionstypen (ID) und deren Bezeichnung (Name) auflisten.
+
| ef02 || BIOS boot partition
|-
 
| ''-p'' || Partitionstabelle anzeigen.
 
|-
 
| ''-P'' || Eine im Arbeitsspeicher veränderte GPT nicht auf den Datenträger schreiben.
 
 
|}
 
|}
  
==== sgdisk: Auswahl von Optionen mit Veränderungen an einer GPT ====
+
=Namen einer Partition setzen=
 +
*sgdisk -c 1:system /dev/sdb
 +
 
 +
=Attribut setzen=
 +
Die Syntax ist <code>-A PARTNUM:AKTION:BIT</code>, Aktionen sind <code>set</code>, <code>clear</code>, <code>toggle</code> und <code>show</code>.
 +
 
 +
Legacy BIOS bootable (Bit 2) setzen:
 +
*sgdisk -A 1:set:2 /dev/sdb
 +
 
 +
Gesetzte Bits anzeigen:
 +
*sgdisk -A 1:show /dev/sdb
 +
 
 +
Die wichtigsten Bits:
  
 
{| class="wikitable"
 
{| class="wikitable"
 +
! Bit !! Bedeutung
 
|-
 
|-
! Option !! Beschreibung
+
| 0 || erforderliche Partition, nicht löschen
|-
 
| ''-n PARTNUM:ANFANG:ENDE'' || Neuen Eintrag für eine Partition an der bisher unbenutzten Stelle PARTNUM (1 ≤ PARTNUM ≤ 128) in der GPT anlegen. ANFANG und ENDE beschreiben die Grenzen der Partition. Details siehe: Anlegen einer Partition mit sgdisk.
 
|-
 
| ''-c PARTNUM:BEZEICHNUNG'' || Bezeichnung für eine Partition PARTNUM (1 ≤ PARTNUM ≤ 128) angeben.
 
|-
 
| ''-t PARTNUM:PART-TYP'' || Partitionstyp für die Partition PARTNUM (1 ≤ PARTNUM ≤ 128) angeben. Dieses Kommando führt nicht zur Änderung der Größe oder Daten einer Partition!
 
 
|-
 
|-
| ''-u PARTNUM:NEUE-UUID'' || Neue UUID für eine Partition PARTNUM (1 ≤ PARTNUM ≤ 128) erwürfeln. Details siehe: UUID einer Partition ändern.
+
| 2 || legacy BIOS bootable
 
|-
 
|-
| ''-e PARTNUM'' || Partition PARTNUM (1 ≤ PARTNUM ≤ 128) aktivieren (aktiv = Bootfähig).
+
| 60 || nur lesen
 
|-
 
|-
| ''-g'' || GPT und MBR löschen (siehe MBR-Partitionstabelle).
+
| 63 || kein Automount
|-
 
| ''-h NUMMER'' || Hexadezimale Nummer NUMMER als Sektoranzahl des letzten Sektors der GPT setzen. Diese Option ist nötig, wenn der GPT-Header durch ein Backup überschrieben wurde und die Kopie nicht mit dem Original identisch ist. Ermöglicht die Reparatur des Schadens.
 
|-
 
| ''-r'' || Löschen von Einträgen rückgängig machen: Versucht, gelöschte Einträge in der MBR-Partitionstabelle zu reaktivieren.
 
 
|}
 
|}
  
=== Beispiele ===
+
=GUID einer Partition neu erwürfeln=
'''Anzeigen von Partitionen auf einem Datenträger'''
+
Das <code>R</code> steht für einen Zufallswert.
 +
*sgdisk -u 1:R /dev/sdb
  
sudo sgdisk -p /dev/sda
+
=Alle GUIDs neu erwürfeln=
 +
Nach dem Klonen einer Platte nötig, sonst tragen Original und Kopie dieselben GUIDs.
 +
*sgdisk -G /dev/sdb
  
'''Anzeigen des Inhalts einer Partition auf einem Datenträger'''
+
=Partition löschen=
 +
*sgdisk -d 1 /dev/sdb
  
sudo sgdisk -i 1 /dev/sda
+
=GPT in eine Datei sichern=
 +
Die Datei enthält Protective MBR, Header, Sicherungs-Header und die Partitionseinträge. Sie gehört auf ein anderes Medium.
 +
*sgdisk -b /root/sdb-gpt.bin /dev/sdb
  
'''Erzeugung eines Backup-Images einer mit GPT initialisierten Festplatte'''
+
=GPT aus einer Datei zurückladen=
 +
*sgdisk -l /root/sdb-gpt.bin /dev/sdb
  
sudo sgdisk -b /mnt/gpt.img /dev/sda
+
=Partitionstabelle auf eine zweite Platte übertragen=
 +
Der klassische Fall vor dem Anlegen eines Verbunds aus zwei gleichen Platten. Beim Übertragen steht das '''Ziel vorn''', die Quelle hinten.
 +
*sgdisk -R /dev/sdc /dev/sdb
  
'''Importieren einer GUID-Partitionstabelle aus einer externen Datei'''
+
Danach zwingend die GUIDs der Kopie neu erwürfeln:
 +
*sgdisk -G /dev/sdc
  
sudo sgdisk -l /mnt/gptbackup.dat /dev/sda
+
=Sicherung ans Plattenende verschieben=
 +
Nötig, wenn eine Platte oder ein LUN nachträglich vergrößert wurde – die Sicherung liegt dann nicht mehr am Ende. Diese Option setzt '''keine''' Partition aktiv.
 +
*sgdisk -e /dev/sdb
  
'''Ändern des Partitionsnamens einer GPT auf einem Datenträger'''
+
=MBR in eine GPT umwandeln=
 +
Wandelt um, löscht '''nicht'''.
 +
*sgdisk -g /dev/sdb
  
sudo sgdisk -c 1:"Hauptpartition" /dev/sda
+
=Platte leeren=
 +
<code>-Z</code> entfernt GPT und MBR samt der Sicherung am Plattenende. Danach ist die Aufteilung weg.
 +
*sgdisk -Z /dev/sdb
  
'''Ändern des Partitionstyps einer GPT'''
+
Nur die GPT entfernen, den MBR stehen lassen:
 +
*sgdisk -z /dev/sdb
  
sudo sgdisk -t 1:8300 /dev/sda
+
=Eine Platte in einem Aufruf komplett einrichten=
 +
Weil sgdisk beim Beenden schreibt, ist ein Aufruf besser als sechs. Hier: EFI, boot und eine LVM-Partition über den Rest.
 +
*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
  
'''Ändern der GUID einer Partition in einer GPT'''
+
Vorher gefahrlos ansehen, was passieren würde:
 +
*sgdisk -P -o -n 1:0:+512M /dev/sdb
  
sudo sgdisk -L "Hauptpartition": /dev/sda
+
==Optionsübersicht==
  
'''Löschen eines Eintrags in einer GPT'''
+
Für den schnellen Rückblick. Details stehen jeweils oben und in <code>man sgdisk</code>.
  
sudo sgdisk -d 1 /dev/sda
+
{| class="wikitable"
 
+
! Option !! Lang !! Wirkung
'''Rückgängig machen von Löschungen'''
+
|-
 
+
| <code>-p</code> || <code>--print</code> || Partitionstabelle anzeigen
sudo sgdisk -r /dev/sda
+
|-
 
+
| <code>-i</code> || <code>--info</code> || Einzelheiten zu einer Partition
=== Weitere Informationen ===
+
|-
* Guided Partition Table (GPT)
+
| <code>-L</code> || <code>--list-types</code> || Typcodes auflisten
* [https://de.wikipedia.org/wiki/GUID_Partition_Table GUID Partition Table (Wikipedia)]
+
|-
* Manpage für gdisk
+
| <code>-v</code> || <code>--verify</code> || Platte prüfen
* Manpage für sgdisk
+
|-
 +
| <code>-P</code> || <code>--pretend</code> || berechnen, aber nicht schreiben
 +
|-
 +
| <code>-o</code> || <code>--clear</code> || neue, leere GPT
 +
|-
 +
| <code>-n</code> || <code>--new</code> || Partition anlegen
 +
|-
 +
| <code>-d</code> || <code>--delete</code> || Partition löschen
 +
|-
 +
| <code>-t</code> || <code>--typecode</code> || Typcode setzen
 +
|-
 +
| <code>-c</code> || <code>--change-name</code> || Namen setzen
 +
|-
 +
| <code>-A</code> || <code>--attributes</code> || Attribut-Bits
 +
|-
 +
| <code>-u</code> || <code>--partition-guid</code> || Partitions-GUID setzen
 +
|-
 +
| <code>-U</code> || <code>--disk-guid</code> || Platten-GUID setzen
 +
|-
 +
| <code>-G</code> || <code>--randomize-guids</code> || alle GUIDs neu erwürfeln
 +
|-
 +
| <code>-a</code> || <code>--set-alignment</code> || Ausrichtung in Sektoren
 +
|-
 +
| <code>-b</code> || <code>--backup</code> || in Datei sichern
 +
|-
 +
| <code>-l</code> || <code>--load-backup</code> || aus Datei zurückladen
 +
|-
 +
| <code>-R</code> || <code>--replicate</code> || auf zweite Platte übertragen
 +
|-
 +
| <code>-e</code> || <code>--move-second-header</code> || Sicherung ans Ende schieben
 +
|-
 +
| <code>-g</code> || <code>--mbrtogpt</code> || MBR in GPT umwandeln
 +
|-
 +
| <code>-z</code> || <code>--zap</code> || GPT zerstören
 +
|-
 +
| <code>-Z</code> || <code>--zap-all</code> || GPT und MBR zerstören
 +
|}

Aktuelle Version vom 19. August 2026, 16:57 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 kennt keinen Schreibbefehl. Eine im Arbeitsspeicher veränderte GPT wird beim Beenden automatisch auf den Datenträger geschrieben. Ein falsch getippter Aufruf kann eine Platte unbrauchbar machen. Zum gefahrlosen Ausprobieren dient die Option -P: damit wird alles berechnet und angezeigt, aber nichts geschrieben.

Beim Aufruf steht immer der Datenträger am Ende. Mehrere Optionen lassen sich in einem Aufruf kombinieren – das ist der übliche Weg, weil dann nur einmal geschrieben wird.

Alle Optionen anzeigen

  • sgdisk --help

Handbuchseite

  • man sgdisk

Partitionstabelle anzeigen

  • sgdisk -p /dev/sdb

Einzelheiten zu einer Partition

Zeigt GUIDs, Start- und Endsektor, Attribute und Namen der Partition 1.

  • sgdisk -i 1 /dev/sdb

Bekannte Typcodes auflisten

  • sgdisk -L

Platte prüfen

Vergleicht primäre und gesicherte Strukturen, prüft die Prüfsummen und meldet Überlappungen.

  • sgdisk -v /dev/sdb

Nichts schreiben, nur zeigen

-P berechnet die Änderung und zeigt das Ergebnis, schreibt aber nicht. Zum Testen jedes ändernden Aufrufs vorschalten.

  • sgdisk -P -n 1:0:+512M /dev/sdb

Neue, leere GPT anlegen

  • sgdisk -o /dev/sdb

Eine Partition anlegen

Die Syntax ist -n PARTNUM:ANFANG:ENDE. Eine 0 bedeutet an jeder der drei Stellen die Vorgabe: erster freier Eintrag, erster freier ausgerichteter Sektor, letzter verfügbarer Sektor. Ohne -t bekommt die Partition den Typ 8300. Die Ausrichtung auf 2048 Sektoren übernimmt sgdisk selbst.

512 MiB, Lage automatisch:

  • sgdisk -n 1:0:+512M /dev/sdb

20 GiB direkt dahinter:

  • sgdisk -n 2:0:+20G /dev/sdb

Der ganze Rest der Platte:

  • sgdisk -n 3:0:0 /dev/sdb

Typcode setzen

Ändert nur die Kennung, nicht die Daten der Partition.

  • sgdisk -t 1:ef00 /dev/sdb

Die gebräuchlichen Codes:

Code Bedeutung
8300 Linux filesystem
8200 Linux swap
8e00 Linux LVM
fd00 Linux RAID
ef00 EFI System Partition
ef02 BIOS boot partition

Namen einer Partition setzen

  • sgdisk -c 1:system /dev/sdb

Attribut setzen

Die Syntax ist -A PARTNUM:AKTION:BIT, Aktionen sind set, clear, toggle und show.

Legacy BIOS bootable (Bit 2) setzen:

  • sgdisk -A 1:set:2 /dev/sdb

Gesetzte Bits anzeigen:

  • sgdisk -A 1:show /dev/sdb

Die wichtigsten Bits:

Bit Bedeutung
0 erforderliche Partition, nicht löschen
2 legacy BIOS bootable
60 nur lesen
63 kein Automount

GUID einer Partition neu erwürfeln

Das R steht für einen Zufallswert.

  • sgdisk -u 1:R /dev/sdb

Alle GUIDs neu erwürfeln

Nach dem Klonen einer Platte nötig, sonst tragen Original und Kopie dieselben GUIDs.

  • sgdisk -G /dev/sdb

Partition löschen

  • sgdisk -d 1 /dev/sdb

GPT in eine Datei sichern

Die Datei enthält Protective MBR, Header, Sicherungs-Header und die Partitionseinträge. Sie gehört auf ein anderes Medium.

  • sgdisk -b /root/sdb-gpt.bin /dev/sdb

GPT aus einer Datei zurückladen

  • sgdisk -l /root/sdb-gpt.bin /dev/sdb

Partitionstabelle auf eine zweite Platte übertragen

Der klassische Fall vor dem Anlegen eines Verbunds aus zwei gleichen Platten. Beim Übertragen steht das Ziel vorn, die Quelle hinten.

  • sgdisk -R /dev/sdc /dev/sdb

Danach zwingend die GUIDs der Kopie neu erwürfeln:

  • sgdisk -G /dev/sdc

Sicherung ans Plattenende verschieben

Nötig, wenn eine Platte oder ein LUN nachträglich vergrößert wurde – die Sicherung liegt dann nicht mehr am Ende. Diese Option setzt keine Partition aktiv.

  • sgdisk -e /dev/sdb

MBR in eine GPT umwandeln

Wandelt um, löscht nicht.

  • sgdisk -g /dev/sdb

Platte leeren

-Z entfernt GPT und MBR samt der Sicherung am Plattenende. Danach ist die Aufteilung weg.

  • sgdisk -Z /dev/sdb

Nur die GPT entfernen, den MBR stehen lassen:

  • sgdisk -z /dev/sdb

Eine Platte in einem Aufruf komplett einrichten

Weil sgdisk beim Beenden schreibt, ist ein Aufruf besser als sechs. Hier: EFI, boot und eine LVM-Partition über den Rest.

  • 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

Optionsübersicht

Für den schnellen Rückblick. Details stehen jeweils oben und in man sgdisk.

Option Lang Wirkung
-p --print Partitionstabelle anzeigen
-i --info Einzelheiten zu einer Partition
-L --list-types Typcodes auflisten
-v --verify Platte prüfen
-P --pretend berechnen, aber nicht schreiben
-o --clear neue, leere GPT
-n --new Partition anlegen
-d --delete Partition löschen
-t --typecode Typcode setzen
-c --change-name Namen setzen
-A --attributes Attribut-Bits
-u --partition-guid Partitions-GUID setzen
-U --disk-guid Platten-GUID setzen
-G --randomize-guids alle GUIDs neu erwürfeln
-a --set-alignment Ausrichtung in Sektoren
-b --backup in Datei sichern
-l --load-backup aus Datei zurückladen
-R --replicate auf zweite Platte übertragen
-e --move-second-header Sicherung ans Ende schieben
-g --mbrtogpt MBR in GPT umwandeln
-z --zap GPT zerstören
-Z --zap-all GPT und MBR zerstören