===== sgdisk =====
**Kurzfassung:** ''sgdisk'' ist der GPT-Spezialist unter Linux Partitionierungstools. Es ist ein Kommandozeilen-Tool, das nur GPT unterstützt und sich durch Skriptierbarkeit, Automatisierbarkeit und erweiterte GPT-Funktionen auszeichnet. Zielgruppe: Systemadministratoren und Automatisierung für GPT-Festplatten.
==== Übersicht ====
''sgdisk'' (ein Teil des gdisk-Pakets) ist ein puristisches Kommandozeilen-Tool für GPT-Partitionierung. Es konzentriert sich vollständig auf GPT und bietet gegenüber ''parted'' und ''cfdisk'':
* **GPT-only:** Keine MBR-Kompatibilität, aber bessere GPT-Unterstützung
* **Skript-freundlich:** Automatisierbare Ein-Zeiler-Befehle
* **Erweiterte Funktionen:** Partition UUIDs, Attribute, Konvertierungen
* **Interoperabilität:** Perfekt für Server-Automatisierung
**Hauptmerkmale:**
* GPT exklusiv (keine MBR)
* Kommandozeilen-fokussiert für Automation
* Partition UUIDs und GUIDs managebar
* Backup/Restore der Partitionstabelle
* Intelligente Ausrichtungen
* Konvertierung zwischen Partitionstypen
* Keine interaktive Session nötig (alle Befehle auf CLI)
==== Installation ====
# Debian/Ubuntu
sudo apt install gdisk
# RHEL/CentOS/Fedora
sudo dnf install gdisk
# Auch nach Installation verfügbar:
sudo sgdisk --version
which gdisk sgdisk fixparts
==== Grundlegende Befehle ====
=== Festplatte analysieren ===
# Partitionstabelle anzeigen
sudo sgdisk -p /dev/sda
# Ausführliche Ausgabe
sudo sgdisk --print /dev/sda
# Nur Grundinformationen
sudo sgdisk -l /dev/sda
# Mit Attribut-Details
sudo sgdisk --print-attributes /dev/sda
=== GPT-Tabelle zurücksetzen ===
# WARNUNG: Löscht ALLE Partitionen!
sudo sgdisk -Z /dev/sda
# Oder interaktiv mit gdisk
sudo gdisk /dev/sda
# Optionen: d (löschen), w (speichern), q (exit)
==== Partitionen erstellen ====
=== Erste Partition mit Startsektor ===
# Neue Partition: -n (new)
# Syntax: -n [Nummer]:[Anfang]:[Ende]:[Typ]
# Partition 1: 1MiB bis 512MiB (EFI)
sudo sgdisk -n 1:1M:512M -t 1:ef00 /dev/sda
# Partition 2: 512MiB bis 100GiB (Linux)
sudo sgdisk -n 2:512M:100G -t 2:8300 /dev/sda
# Partition 3: 100GiB bis Ende (LVM)
sudo sgdisk -n 3:100G:0 -t 3:8e00 /dev/sda
=== Automatisch Platz finden ===
# sgdisk findet Platz automatisch
# Leer lassen für automatische Berechnung
sudo sgdisk -n 0:0:+10G -t 0:8300 /dev/sda
sudo sgdisk -n 0:0:+512M -t 0:ef00 /dev/sda
# Nach Größe: +10G, +1G, +512M
=== Mehrere Partitionen auf einmal ===
# Kette von Befehlen
sudo sgdisk \
-Z /dev/sda \
-n 1:1M:512M -t 1:ef00 \
-n 2:512M:50G -t 2:8300 \
-n 3:50G:60G -t 3:8200 \
-n 4:60G:0 -t 4:8e00 \
/dev/sda
==== Partitionstypen ====
Häufige Partitionstypen-IDs (GUID):
| **Typ** | **ID (hex)** | **Beschreibung** |
| EFI System | ef00 | EFI Boot-Partition |
| Linux Filesystem | 8300 | Standard Linux |
| Linux Swap | 8200 | Swap-Bereich |
| Linux LVM | 8e00 | Logisches Volume |
| Linux RAID | fd00 | Software RAID |
| Linux /home | 933ac7e1-2eb4-4f13-b844-0e14e2aef915 | Home Partition |
| Linux /srv | 3b8f8425-20e0-4f3b-907f-1a25a76f98e8 | Server Partition |
**Typ ändern:**
# Partition 2 in Swap umwandeln
sudo sgdisk -t 2:8200 /dev/sda
# Überprüfen
sudo sgdisk -p /dev/sda
==== Fortgeschrittene Operationen ====
=== Partitionsname (Label) setzen ===
# GPT erlaubt 72-Zeichen Partitionsnames
sudo sgdisk -c 1:"EFI Boot" /dev/sda
sudo sgdisk -c 2:"Linux Root" /dev/sda
sudo sgdisk -c 3:"Linux Swap" /dev/sda
# Überprüfen
sudo sgdisk -p /dev/sda
=== Partition löschen ===
# Partition 3 löschen
sudo sgdisk -d 3 /dev/sda
# Mehrere löschen
sudo sgdisk -d 3 -d 4 /dev/sda
# Überprüfen
sudo sgdisk -p /dev/sda
=== Partition verschieben/vergrößern ===
# sgdisk kann Partitionen nicht direkt resizen
# Dazu parted oder manuelle Methode nutzen
# Workaround: Löschen und mit neuem Start/Ende neuerstellen
sudo sgdisk -d 2 /dev/sda
sudo sgdisk -n 2:512M:150G /dev/sda
# Dateisystem dann mit resize2fs anpassen
sudo resize2fs /dev/sda2
=== Backup und Restore ===
# Backup der Partitionstabelle (GPT header + entries)
sudo sgdisk -b /tmp/sda-gpt-backup /dev/sda
# Datei ansehen
hexdump -C /tmp/sda-gpt-backup | head
# Restore aus Backup
sudo sgdisk -l /tmp/sda-gpt-backup /dev/sda
# Alternativer Backup (sfdisk-Format)
sudo sfdisk -d /dev/sda > /tmp/sda-partition.bak
sudo sfdisk /dev/sda < /tmp/sda-partition.bak
=== UUID/GUID ändern ===
# Disk-GUID regenerieren (Backup empfohlen!)
sudo sgdisk -G /dev/sda
# Partition-GUID anzeigen/ändern (selten nötig)
sudo sgdisk -p /dev/sda | grep -i guid
=== Attribute setzen ===
# Bestimmte Attribute für spezielle Betriebssysteme
# z.B. Read-only, required for boot, etc.
sudo sgdisk -A 1:set:0 /dev/sda # Attribut 0 setzen
sudo sgdisk -A 1:clear:0 /dev/sda # Attribut 0 löschen
# Überprüfen
sudo sgdisk --print-attributes /dev/sda
==== Praktische Beispiele ====
=== UEFI-System mit Swap ===
# 1TB Festplatte: 512M EFI + 16GB Swap + Rest Linux
sudo sgdisk -Z /dev/sda
sudo sgdisk \
-n 1:1M:512M -t 1:ef00 -c 1:"EFI Boot" \
-n 2:512M:16.5G -t 2:8200 -c 2:"Swap" \
-n 3:16.5G:0 -t 3:8300 -c 3:"Linux Root" \
/dev/sda
# Formatieren
sudo mkfs.fat -F32 /dev/sda1
sudo mkswap /dev/sda2
sudo swapon /dev/sda2
sudo mkfs.ext4 /dev/sda3
=== Server mit LVM ===
# 2TB Server-Festplatte: 1GB EFI + Rest LVM
sudo sgdisk -Z /dev/sdb
sudo sgdisk \
-n 1:1M:1G -t 1:ef00 -c 1:"EFI" \
-n 2:1G:0 -t 2:8e00 -c 2:"LVM Volume" \
/dev/sdb
# LVM initialisieren
sudo pvcreate /dev/sdb2
sudo vgcreate storage /dev/sdb2
sudo lvcreate -L 500G -n data storage
=== Multi-OS Installation (Windows + Linux + macOS) ===
# 500GB mit mehreren Betriebssystemen
sudo sgdisk -Z /dev/sdc
sudo sgdisk \
-n 1:1M:512M -t 1:ef00 -c 1:"EFI" \
-n 2:512M:150G -t 2:0700 -c 2:"Windows" \
-n 3:150G:400G -t 3:8300 -c 3:"Linux" \
-n 4:400G:0 -t 4:af00 -c 4:"macOS" \
/dev/sdc
==== Fehlerbehandlung ====
**Problem: "Disk not found" oder Berechtigungsfehler**
# Lösung: Mit sudo ausführen
sudo sgdisk -p /dev/sda
**Problem: "GPT-Tabelle beschädigt"**
# sgdisk kann oft selbst reparieren
sudo sgdisk -v /dev/sda
# Wenn schlimm: Mit gdisk interaktiv reparieren
sudo gdisk /dev/sda
# Option: x (experts), t (transform)
**Problem: "Kernel meldet neue Partition nicht"**
# Kernel-Partition-Tabelle neu laden
sudo partprobe /dev/sda
# Oder erzwingen
sudo partx -a /dev/sda
# Oder Reboot
sudo reboot
**Problem: "sgdisk: unknown option"**
# Dokumentation prüfen
sgdisk --help
# Oder man-page
man sgdisk
==== Vergleich mit gdisk/fixparts ====
Das gdisk-Paket enthält drei Tools:
| **Tool** | **Zweck** | **Interaktiv** | **Kommandozeile** |
| ''sgdisk'' | Partitionierung | Nein | **Ja** (perfekt für Scripts) |
| ''gdisk'' | Interaktive GPT-Verwaltung | **Ja** | Zusätzlich |
| ''fixparts'' | Fehleranalyse und -repair | Ja/Nein | Beide |
**sgdisk vs. gdisk:**
* ''sgdisk'': Schnell, automatisierbar, CLI-only
* ''gdisk'': Interaktiv, wenn etwas schiefgeht oder lernen möchte
==== Best Practices ====
**Empfehlungen:**
* Immer mit ''-p'' (print) vor destructiven Operationen überprüfen
* GPT-Tabelle backen: `sgdisk -b /tmp/backup /dev/sda`
* Automatisierung: sgdisk in Scripts mit Ketten-Befehlen
* Partitionstypen-IDs memorieren: ef00 (EFI), 8300 (Linux), 8200 (Swap), 8e00 (LVM)
* Namen setzen mit ''-c'' für bessere Dokumentation
* Nach Operationen: partprobe aufrufen
* Backup IMMER vor -Z (Reset)
**KRITISCH:**
* -Z löscht ALLE Partitionen! Backup essentiell!
* Falsche Festplatte angeben → Kompletter Datenverlust
* Keine "Undo"-Funktion - Operationen sind sofort permanent
* Nicht auf Système-Festplatten während Betrieb arbeiten
* Boot-Partitionen nicht löschen, während System läuft
==== Siehe auch ====
* [[sammlung:partitionieren|Partitionieren - Übersicht]]
* [[sammlung:fdisk|fdisk]]
* [[sammlung:cfdisk|cfdisk]]
* [[sammlung:parted|parted]]
* [[sammlung:gparted|gparted]]
* [[sammlung:lvm|LVM - Logisches Volume Management]]
* [[sammlung:mount|mount und Dateisystem-Verwaltung]]
==== Quellen ====
* [[https://linux.die.net/man/8/sgdisk|sgdisk - man page]]
* [[https://www.rodsbooks.com/gdisk/|Rod Smith's GPT fdisk page]]
* [[https://man7.org/linux/man-pages/man8/sgdisk.8.html|sgdisk - Linux man pages online]]
----
{{tag>sgdisk gpt partition cli automatisierung gdisk}}