Sgdisk: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(4 dazwischenliegende Versionen desselben Benutzers werden 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!
+
'''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.
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.
+
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.
  
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.
+
=Alle Optionen anzeigen=
 +
*sgdisk --help
  
Syntax
+
=Handbuchseite=
Beim Aufruf muss immer ein zu bearbeitender Datenträger[5][6] an der Stelle DEVICE angegeben werden:
+
*man sgdisk
  
sudo sgdisk OPTIONEN DEVICE
+
=Partitionstabelle anzeigen=
 +
*sgdisk -p /dev/sdb
  
Eine Erklärung aller Optionen mit ausführlicher Information liefern die Programmierer-Seiten, die Manpage des Programms sowie auszugsweise die folgenden Tabellen:
+
=Einzelheiten zu einer Partition=
 +
Zeigt GUIDs, Start- und Endsektor, Attribute und Namen der Partition 1.
 +
*sgdisk -i 1 /dev/sdb
  
man sgdisk  
+
=Bekannte Typcodes auflisten=
 +
*sgdisk -L
  
Optionen
+
=Platte prüfen=
sgdisk: Auswahl von Optionen ohne Veränderungen an einer GPT
+
Vergleicht primäre und gesicherte Strukturen, prüft die Prüfsummen und meldet Überlappungen.
 +
*sgdisk -v /dev/sdb
  
Option    Beschreibung
+
=Nichts schreiben, nur zeigen=
-?        Ausgabe eines Hilfetextes der zur Verfügung stehenden Kommandos
+
<code>-P</code> berechnet die Änderung und zeigt das Ergebnis, schreibt aber nicht. Zum Testen jedes ändernden Aufrufs vorschalten.
-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.
+
*sgdisk -P -n 1:0:+512M /dev/sdb
-b DATEINAME    Externe binäre Backup-Datei mit dem als DATEINAME angegebenem Namen der GPT des Datenträgers[3] erzeugen. Inhalt: "Protective/Hybrid MBR", GPT-Header, GPT-Backup-Header, Feld mit Einträgen für Partitionen
 
-i PARTNUM    Detaillierte Informationen zur Partition PARTNUM anzeigen. (1 ≤ PARTNUM ≤ 128)
 
-L        Bekannte Partitionstypen (ID) und deren Bezeichnung (Name) auflisten.
 
-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
+
=Neue, leere GPT anlegen=
 +
*sgdisk -o /dev/sdb
  
Option    Beschreibung
+
=Eine Partition anlegen=
-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
+
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.
-d PARTNUM    Eintrag an der Stelle PARTNUM in der GPT löschen.
 
-c PARTNUM:"Partition Label    Ändern des frei wählbaren Namens einer Partition eines Datenträgers (mehr Infos: Partitionsname ändern)
 
-G        Neue GUID für Datenträger und neue UUIDs für Partitionen erwürfeln.
 
-l DATEINAME    GUID-Partitionstabelle aus der externen Datei mit dem Namen DATEINAME importieren.
 
-L BEZEICHNUNG:GUID    Neue Bezeichnung und neue GUID für Partitionen mit der bisherigen GUID-Bezeichnung BEZEICHNUNG erwürfeln (mehr Infos: GUID einer Partition ändern).
 
-t PARTNUM:PART-TYP    Partitionstyp für die Partition an der Stelle PARTNUM (1 ≤ PARTNUM ≤ 128) ändern. Das Ändern des Partitions-Typs führt nicht zur Veränderung der Partitionsgröße oder der Partitionsdaten!
 
-u PARTNUM:NEUE-UUID    Neue UUID für eine Partition PARTNUM (1 ≤ PARTNUM ≤ 128) erwürfeln (mehr Infos: UUID einer Partition ändern).
 
-e PARTNUM    Partition PARTNUM (1 ≤ PARTNUM ≤ 128) aktivieren (aktiv = Bootfähig).
 
-g        GPT und MBR löschen (s. MBR-Partitionstabelle).
 
-h NUMMER    Hexadezimale Nummer NUMMER als Sektoranzahl des letzten Sektors der GPT setzen. Diese Option wird benötigt, falls der GPT-Header durch eine Sicherungskopie überschrieben wurde und die Kopie nicht identisch mit dem Original ist. Ermöglicht dann die Reparatur des Schadens.
 
-r        Löschungen rückgängig machen: Versucht, gelöschte Einträge im MBR (Partitionstabelle) zu reaktivieren.
 
  
Beispiel
+
512 MiB, Lage automatisch:
Partitionen eines Datenträgers anzeigen
+
*sgdisk -n 1:0:+512M /dev/sdb
  
sudo sgdisk -p /dev/sda
+
20 GiB direkt dahinter:
 +
*sgdisk -n 2:0:+20G /dev/sdb
  
Inhalte der Partitionen eines Datenträgers
+
Der ganze Rest der Platte:
 +
*sgdisk -n 3:0:0 /dev/sdb
  
sudo sgdisk -i 1 /dev/sda
+
=Typcode setzen=
 +
Ändert nur die Kennung, nicht die Daten der Partition.
 +
*sgdisk -t 1:ef00 /dev/sdb
  
Mit einer GPT initialisiertes Backup-Image des 1. Festplattenlaufwerks eines Rechners
+
Die gebräuchlichen Codes:
  
sudo sgdisk -b /mnt/gpt.img /dev/sda
+
{| class="wikitable"
 +
! Code !! Bedeutung
 +
|-
 +
| 8300 || Linux filesystem
 +
|-
 +
| 8200 || Linux swap
 +
|-
 +
| 8e00 || Linux LVM
 +
|-
 +
| fd00 || Linux RAID
 +
|-
 +
| ef00 || EFI System Partition
 +
|-
 +
| ef02 || BIOS boot partition
 +
|}
  
GUID-Partitionstabelle aus einer externen Datei importieren
+
=Namen einer Partition setzen=
 +
*sgdisk -c 1:system /dev/sdb
  
sudo sgdisk -l /mnt/gptbackup.dat /dev/sda
+
=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>.
  
Ändern des Partitionsnamens einer GPT auf einem Datenträger
+
Legacy BIOS bootable (Bit 2) setzen:
 +
*sgdisk -A 1:set:2 /dev/sdb
  
sudo sgdisk -c 1:"Hauptpartition" /dev/sda
+
Gesetzte Bits anzeigen:
 +
*sgdisk -A 1:show /dev/sdb
  
Partitionstyp einer GPT ändern
+
Die wichtigsten Bits:
  
sudo sgdisk -t 1:8300 /dev/sda
+
{| class="wikitable"
 +
! Bit !! Bedeutung
 +
|-
 +
| 0 || erforderliche Partition, nicht löschen
 +
|-
 +
| 2 || legacy BIOS bootable
 +
|-
 +
| 60 || nur lesen
 +
|-
 +
| 63 || kein Automount
 +
|}
  
GUID einer Partition einer GPT ändern
+
=GUID einer Partition neu erwürfeln=
 +
Das <code>R</code> steht für einen Zufallswert.
 +
*sgdisk -u 1:R /dev/sdb
  
sudo sgdisk -L "Hauptpartition": /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
  
Eintrag einer GPT löschen
+
=Partition löschen=
 +
*sgdisk -d 1 /dev/sdb
  
sudo sgdisk -d 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
  
Löschungen rückgängig machen
+
=GPT aus einer Datei zurückladen=
 +
*sgdisk -l /root/sdb-gpt.bin /dev/sdb
  
sudo sgdisk -r /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
 +
 
 +
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=
 +
<code>-Z</code> 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 <code>man sgdisk</code>.
 +
 
 +
{| class="wikitable"
 +
! Option !! Lang !! Wirkung
 +
|-
 +
| <code>-p</code> || <code>--print</code> || Partitionstabelle anzeigen
 +
|-
 +
| <code>-i</code> || <code>--info</code> || Einzelheiten zu einer Partition
 +
|-
 +
| <code>-L</code> || <code>--list-types</code> || Typcodes auflisten
 +
|-
 +
| <code>-v</code> || <code>--verify</code> || Platte prüfen
 +
|-
 +
| <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