Sgdisk

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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