===== 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}}