Sgdisk: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „sgdisk Das Programm sgdisk führt die gleichen Aufgaben wie gdisk durch, wird aber komplett über mitgegebene Optionen gesteuert und ist in Skripten besser gee…“)
 
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
sgdisk
+
== sgdisk ==
 +
 
 
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.
 
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!'''
 
Bei der Beendigung schreibt sgdisk die GPT ohne Rückfrage auf den Datenträger!
 
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.
 
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.
  
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.
+
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.
  
Syntax
+
=== Syntax ===
Beim Aufruf muss immer ein zu bearbeitender Datenträger[5][6] an der Stelle DEVICE angegeben werden:
+
Beim Aufruf muss immer ein zu bearbeitender Datenträger an der Stelle ''DEVICE'' angegeben werden:
  
 
sudo sgdisk OPTIONEN DEVICE  
 
sudo sgdisk OPTIONEN DEVICE  
 +
 
Eine Erklärung aller Optionen mit ausführlicher Information liefern die Programmierer-Seiten, die Manpage des Programms sowie auszugsweise die folgenden Tabellen:
 
Eine Erklärung aller Optionen mit ausführlicher Information liefern die Programmierer-Seiten, die Manpage des Programms sowie auszugsweise die folgenden Tabellen:
  
man sgdisk  
+
''man sgdisk''
Optionen
 
sgdisk: Auswahl von Optionen ohne Veränderungen an einer GPT
 
Option Beschreibung
 
-? Ausgabe eines Hilfetextes der zur Verfügung stehenden Kommandos
 
-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.
 
-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
 
Option Beschreibung
 
-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
 
-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 GPT des Datenträgers aus externer Backup-Datei in die GPT-Bereiche zurück laden.
 
-R ZIEL-DEVICE GPT auf einen anderen, mit ZIEL-DEVICE angegebenen Datenträger kopieren. (Nützlich z.B. beim Austausch einer defekten Platte bei RAID). Es werden nur die Beschreibungen aus der GPT, aber nicht die Inhalte der Partitionen kopiert!
 
-s Einträge zu den Partitionen aufsteigend nach Sektoren sortieren; dabei werden die Nummern der Partitionen neu vergeben. (Ggf. fstab und grub.cfg prüfen!)
 
-t PARTNUM:ID Partitionstyp (ID) ändern; siehe dazu auch Option -L.
 
-v Komplette GPT überprüfen und ggf. kleine Fehler automatisch beheben.
 
-Z Entfernt alle Partitonsinformation gemäß GPT-Schema und DOS/MBR-Schema. Nach diesem Befehl sind noch alle Daten in den Partitionen auf dem Datenträger vorhanden, aber nichts ist mehr zugreifbar. Forensische Reparaturprogramme können das ändern.
 
Beispiele
 
Hinweis:
 
In allen Beispielen wird als Datenträgerbezeichnung /dev/sdX genutzt. Diese muss auf das eigene System angepasst werden!
 
 
 
Partitionstabelle anzeigen
 
Anzeige genereller Informationen der GPT und auflisten aller Einträge zu den Partitionen:
 
 
 
sudo sgdisk -p /dev/sdX
 
vergrößern
 
Disk /dev/sdX: 7913471 sectors, 3.8 GiB
 
Logical sector size: 512 bytes
 
Disk identifier (GUID): 5E49BB87-03F4-4FB4-9D3C-D8A28E5ADB85
 
Partition table holds up to 128 entries
 
First usable sector is 34, last usable sector is 7913437
 
Partitions will be aligned on 2-sector boundaries
 
Total free space is 0 sectors (0 bytes)
 
 
 
Number  Start (sector)    End (sector)  Size      Code  Name
 
  1              34            2047  1007.0 KiB  EF02  BIOS Grub-Partition
 
  2            2048        7913437  3.8 GiB    0700  VFAT 32 Pendrive
 
Das "Sector Alignment" wurde hier vom Programm automatisch auf 2 eingestellt, weil wegen der bereits angelegten Partition mit Start bei LBA=34 keine größere Zahl kompatibel wäre. Dieser Wert kann (und muss in der Regel!) aber manuell übersteuert werden.
 
 
 
Anlegen einer Partition
 
Im folgenden Beispiel wird eine neue Partition mit der Nummer 5 angelegt:
 
 
 
Das Alignment wird auf 1024 logische Sektoren eingestellt (-a 1024)
 
 
 
Die neue Partition erhält die Nummer 5, wird 1024 Sektoren groß und belegt den Bereich von 4096-5119 Sektoren (-n 5:4096:5119)
 
 
 
Der interne Name der 5. Partition wird geändert (-c 5:"BIOS Boot Partition")
 
 
 
Der Partitionstyp wird auf ef02 eingestellt und bekommt dadurch die GUID 21686148-6449-6E6F-744E-656564454649 zugeteilt.
 
 
 
sudo sgdisk -a 1024 -n 5:4096:5119 -c 5:"BIOS Boot Partition" -t 5:ef02 /dev/sdX 
 
(Diese GUID kann – richtig nach RFC4122 interpretiert – im Arbeitsspeicher einer little-endian-CPU und auch auf dem Datenträger als ASCII-Text Hah!IdontNeedEFI gelesen werden.)
 
 
 
Zur Definition einer neuen Partition muss man mindestens deren Index 1-128 sowie den ersten und letzten Sektor angeben. Für die Sektoren kann man verschiedene Schreibweisen wählen:
 
 
 
Schlichte Zahlen werden als LBA verstanden.
 
 
 
Zahlen mit einem Suffix K, M, G, T oder P werden als Speicherbereich in KiB, MiB, GiB, TiB oder PiB verstanden. Zur Umrechnung in LBA muss man die Größe eines logischen Sektors kennen. Wenn diese z.B. 512 Byte beträgt, könnte man im Beispiel statt 5:4096:5119 auch schreiben:
 
 
 
5:2M:5119
 
 
 
5:2M:+1024
 
 
 
5:2M:+512K
 
 
 
Dabei bezeichnet ein + als führendes Zeichen, dass die folgende Angabe nicht absolut, sondern relativ zum aktuell geltenden Vorgabewert verstanden werden soll, im Beispiel ist dies 2M bzw. 4096 logische Sektoren à 512 Byte.
 
 
 
Partitions-Information (detailliert)
 
Detaillierte Informationen zur Partition 1 des Datenträgers:
 
 
 
sudo sgdisk -i1 /dev/sdX
 
Partition GUID code: 21686148-6449-6E6F-744E-656564454649 (BIOS boot partition)
 
Partition unique GUID: 9E39F351-4D0F-48C7-8402-93A0AF35A0B4
 
First sector: 34 (at 17.0 KiB)
 
Last sector: 2047 (at 1023.5 KiB)
 
Partition size: 2014 sectors (1007.0 KiB)
 
Attribute flags: C000000000000001
 
Partition name: 'BIOS Grub-Partition'
 
Eine Partition sollte man in der Regel nicht wie hier gezeigt bei LBA=34 beginnen lassen. Ausnahmen können sinnvoll für selten benutzte und noch seltenener beschriebene Dateisysteme sein, anderenfalls riskiert man eine schlechte Performanz wegen Ausrichtungsfehlern.
 
 
 
Partitionstabelle sichern
 
Der Befehl
 
 
 
sudo sgdisk -b Backup_sdX.GPT /dev/sdX 
 
sichert die GPT inkl. "Protectice/Hybrid MBR", beider Header und aller Einträge für Partitionen als binäre Datei im momentanen Arbeitsverzeichnis unter dem angegebenen, frei wählbaren Namen, den man auch mit einem Pfad zu einem anderen Ordner angeben kann.
 
 
 
Partitionstabelle zurückladen
 
Hinweis:
 
Eine GPT sollte nur auf den gleichen Datenträger zurückgeladen werden. Wenn man sie auf einen anderen, größeren Datenträger schreibt, muss man die geschriebene GPT anschließend reparieren, indem man die Sicherungstabelle an das Ende des Datenträgers verschiebt.
 
 
 
Der Befehl
 
 
 
sudo sgdisk -l Backup_sdX.GPT /dev/sdX 
 
schreibt die GPT wieder zurück auf den Datenträger.
 
 
 
Partitiontabelle kopieren
 
Die Partitionstabelle von Datenträger[4] sdX nach sdZ kopieren:
 
 
 
sudo sgdisk -R /dev/sdZ /dev/sdX 
 
Dies kopiert die GPT inkl. aller indiviuellen UUIDs des Datenträgers und seiner Partitionen, was nur dann erwünscht ist, wenn der Ziel-Datenträger den unsprünglichen Datenträger ersetzen soll, z.B. vor einem drohenden Hardware-Defekt. Das funktioniert nur dann richtig, wenn der ursprüngliche und der neue Datenträger dieselbe logische Sektorgröße haben. Außerdem müssen sie gleich groß sein, d.h die gleiche Gesamtanzahl logischer Sektoren besitzen. Wenn der neue Datenträger mehr logische Sektoren als der alte hat, muss die übertragene GPT repariert werden, indem man die Backup-Tabelle wieder ans Ende verschiebt.
 
 
 
Wenn es nicht um einen Ersatz des Datenträgers geht, sollte man anschließend dem Datenträger sdZ noch neue Datenträger- und Partitions-UUIDs zuweisen:
 
 
 
sudo sgdisk -G /dev/sdZ 
 
Partitionsname ändern
 
In einer GPT kann jeder Partition neben ihren Grenzen, ihres Typs, ihrer individuellen UUID und ihrer Attribute auch ein frei wählbarer Name als Partitions-Label vergeben werden, um eine bessere Identifizierung der einzelnen Partitionen zu ermöglichen. Bei der Neuanlage einer Partition wird dazu die Standard-Bezeichnung aus der programminternen ID-Namens-Tabelle herangezogen.
 
 
 
Ein Partitionslabel belegt 72 Byte im Partitionseintrag; darin werden 36 Unicode-Zeichen mit Codierung UTF16LE gespeichert.
 
 
 
Im folgenden Beispiel werden die Namen von 3 Partitionen (1, 2, 5) in der GPT des Datenträgers sdX geändert:
 
 
 
sudo sgdisk -c 1:BIOS-Grub /dev/sdX                      # Partition 1 - Name: BIOS-Grub
 
sudo sgdisk -c 2:Standard_Lucid /dev/sdX                  # Partition 2 - Name: Standard_Lucid
 
sudo sgdisk -c 5:"Ubuntu 22.04 Jammy Jellyfish" /dev/sdX  # Quotierung wegen Leerzeichen erforderlich!
 
sudo sgdisk -p /dev/sdX                                  # Listen der neuen Partitionen-Informationen
 
cgdisk
 
Das Programm cgdisk ist eine Textoberfläche zu gdisk, welche die wichtigsten Aufgaben über eine Menüsteuerung bereitstellt und selbsterklärend ist. Die Steuerung erfolgt über die Pfeiltasten und Enter.
 
 
 
Beim Aufruf muss immer ein zu bearbeitender Datenträger[5] angegeben werden:
 
 
 
sudo cgdisk DEVICE
 
Ausführliche Informationen liefert die Manpage sowie die Links zur Programmierer-Seite.
 
 
 
fixparts
 
Mit dem Programm fixparts kann man keine Datenträger mit GPT bearbeiten, sondern nur solche mit DOS/MBR-Partitionsschema. Es ist beispielsweise nützlich zur Vorbereitung einer DOS/MBR-Platte vor einer Umwandlung nach GPT mit gdisk.
 
 
 
Syntax: fixparts
 
Beim Aufruf muss immer ein zu bearbeitender Datenträger[5] angegeben werden:
 
 
 
sudo fixparts DEVICE
 
Menü: fixparts
 
Das Programm arbeitet interaktiv und erwartet Tastendrucke.
 
 
 
Auswahl von Kommandos von fixparts
 
Taste Beschreibung
 
Q Programm beenden ohne Änderung der Partitionstabelle auf dem Datenträger.
 
? Liste mit den Kommandos und deren Beschreibung anzeigen.
 
P Liste mit den aktuell definierten Partitionen und deren Status anzeigen.
 
L Eine primäre Partition zu einem logischen Laufwerk umwandeln. Das funktioniert nur, wenn das momentan gültige Layout so etwas ermöglicht.
 
R Ein logisches Laufwerk zu einer primären Partition umwandeln. Das funktioniert nur, wenn das momentan gültige Layout so etwas ermöglicht.
 
A Das Bootflag umschalten.
 
T Den Typ einer Partition ändern.
 
W Die Partittionstabelle auf den Datenträger schreiben und das Programm beenden.
 
Ausführliche Informationen liefert die Manpage sowie die Links zur Programmierer-Seite.
 
 
 
Technische Hinweise
 
Aufbau einer GPT
 
Die Grenzen einer Partition werden beim GPT-Schema als LBA-Werte (Logical Block Address) der jeweiligen logischen Sektoren auf dem Datenträger gespeichert, dafür stehen jeweils 8 Byte bzw. 64 Bit zur Verfügung. Aktuelle Datenspeicher benutzen davon nur 48 Bit (LBA48) und können damit (bei einer Größe eines logischen Sektors von 512 Byte) bis zu 4 PiB Daten verwalten.
 
 
 
Beim GPT-Schema werden mehrere Bereiche benutzt, die zusammen mindestens 33,5 kiB für zwei Tabellen belegen:
 
 
 
Die Haupttabelle steht am Anfang des Datenträgers. Diese wird normalerweise benutzt und besteht aus einem "Protektive MBR", dem primären Kopf (GUID Partition Table Header, GPT-Header) und dem Platz für die Einträge zu den Partitionen (Partition Entry Array).
 
 
 
Eine Kopie der Haupttabelle steht am Ende des Datenträgers als Sicherung. Diese Sicherungstabelle wird im normalen Betrieb nicht verwendet und besteht aus dem Feld der Einträge zu den Partitionen vor dem sekundären Kopf (GPT-Backup-Header).
 
 
 
Beide Tabellen enthalten die vollständige Information zur Aufteilung des Datenträgers in Partitionen und verweisen gegenseitig aufeinander. Abgesehen von diesen Verweisen sind die Daten in den Feldern der Einträge zu den Partitionen identisch.
 
 
 
Eine Haupttabelle (primary table) belegt normalerweise 17 KiB bzw. z.B. 34 logische Sektoren á 512 Byte und bietet Platz zur Beschreibung von 128 Partitionen. Das Format erlaubt zwar auch kleinere oder größere Tabellen, allerdings widersprechen kleinere Tabellen der Spezifikation und es gibt keine Motivation für mehr als 128 Partitionen auf einem Datenträger:
 
 
 
Im ersten logischen Sektor des Datenträgers (also LBA=0) werden die ersten 512 Byte ignoriert und können bzgl. des Tabellenformates beliebigen Inhalt haben. Bei einer bootfähigen Platte ist jedoch in diesem Bereich ein "Protective MBR" verpflichtend. Das Programm gdisk und seine Schwestern legen in diesem Bereich beim Schreiben einer Partitionstabelle immer einen "Protective MBR" oder einen "Hybrid MBR" an. Dies ist jeweils eine Partitionstabelle im DOS/MBR-Format, und diese dient nur dazu, Programme wie fdisk zur Bearbeitung der DOS/MBR-Partitionstabelle von der Bearbeitung des Datenträgers abzuhalten. Wenn der Sektor mit der LBA 0 mehr als 512 Byte enthalten sollte, so werden diese ignoriert.
 
 
 
Im zweiten logischen Sektor (also LBA=1) steht in den ersten 92 Byte der primäre Kopf zur Beschreibung der gesamten Tabelle. Hier stehen die Größe der Tabelle, der Verweis auf die andere Tabelle und eine UUID zur Identifizierung des gesamten Datenträgers sowie eine Prüfsumme und eine Signatur. Die folgenden 420 Byte sind reserviert ist und müssen Nullen enthalten. Wenn der Sektor mit der LBA 1 mehr als 512 Byte enthalten sollte, so werden diese ignoriert.
 
 
 
In der Regel beginnt mit dem logischen Sektor LBA=2 (Man könnte es anders machen, wenn man z.B. ab LBA=2 einen Bootmanager für die Bios-Boot-Methode platzieren will.) das Feld der Einträge zu den Partitionen. Dafür sind mindestens 16 KiB zu reservieren. Jeder Eintrag umfasst 128 Byte.
 
  
Die Sicherungstabelle (backup table, secondary table) belegt mindestens 16,5 KiB:
+
=== Optionen ===
  
Im logischen Sektor mit der höchsten möglichen LBA für den Datenträger steht der sekundäre Kopf.
+
==== sgdisk: Auswahl von Optionen ohne Veränderungen an einer GPT ====
  
In den logischen Sektoren unmittelbar vor dem sekundären Kopf steht die Kopie des Felds der Einträge zu den Partitionen.
+
{| class="wikitable"
 +
|-
 +
! Option !! Beschreibung
 +
|-
 +
| ''-?'' || Ausgabe eines Hilfetextes der zur Verfügung stehenden Kommandos
 +
|-
 +
| ''-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.
 +
|-
 +
| ''-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
 +
|-
 +
| ''-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.
 +
|}
  
Jeder Eintrag für eine Partition enthält u.a. die Werte des ersten und des letzten LBA der jeweiligen Partition. Diese Angaben müssen jeweils logische Sektoren nach dem letzten für das primäre Feld der Einträge für Partitionen reservierten logischen Sektor und vor dem ersten logischen Sektor der Kopie des Feldes der Einträge für Partitionen adressieren.
+
==== sgdisk: Auswahl von Optionen mit Veränderungen an einer GPT ====
  
Bei einem Datenträger mit einer logischen Sektorgröße von 512 Byte ist somit LBA=34 der erste für Partitionen benutzbare Sektor, bei einer logischen Sektorgröße von 4096 Byte wäre es LBA=6. In der Regel erhält man jedoch bei einer Ausnutzung dieser durch das Format bestimmten Grenzen eine schlechte Performanz; man lese dazu Näheres unter Sector Alignment.
+
{| class="wikitable"
 +
|-
 +
! Option !! Beschreibung
 +
|-
 +
| ''-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.
 +
|-
 +
| ''-e PARTNUM'' || Partition PARTNUM (1 ≤ PARTNUM ≤ 128) aktivieren (aktiv = Bootfähig).
 +
|-
 +
| ''-g'' || GPT und MBR löschen (siehe MBR-Partitionstabelle).
 +
|-
 +
| ''-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.
 +
|}
  
Partitionsattribute
+
=== Beispiele ===
Den Partitionen können 64 boolsche Attribute zugewiesen werden, wie z.B. das Bootfähig-Flag unter Windows. Interessant wird dies z.B. bei einem System, dass sowohl im BIOS- als auch im EFI-Modus betrieben werden soll. GRUB 2 nutzt dabei unterschiedliche Partitionen für die Bootloader-Infos, wobei die BIOS Boot Partition vor EFI versteckt werden muss.
+
'''Anzeigen von Partitionen auf einem Datenträger'''
  
Liste der z.Zt. bekannten Attribute
+
sudo sgdisk -p /dev/sda
Wert Beschreibung
 
0 Systempartition (system partition)
 
1 Verstecke die Partition vor EFI (hide from EFI)
 
2 Legacy Bootflag (legacy BIOS bootable)
 
60 Nur lesen (read-only)
 
62 Versteckt (hidden)
 
63 Nicht Einhängen (do not automount)
 
Sector Alignment
 
Der Wert für das "Sector Alignment" ist eine Einstellung für die Arbeitsweise des Partitionierungsprogramms und wird selber nicht auf den Datenträger geschrieben. Der Wert bestimmt die logischen Sektoren, an denen eine neu angelegte Partition beginnen darf, indem der Startsektor einer Partition ein ganzzahliges Vielfaches des Wertes für das "Sector Alignment" sein muss.
 
  
Eine ungeschickte Wahl dieses Wertes kann die Performanz des Datenträgers verschlechtern. Für eine optimale Wahl müssen mehrere Parameter bekannt sein:
+
'''Anzeigen des Inhalts einer Partition auf einem Datenträger'''
  
Größe eines logischen Sektors des Datenträgers
+
sudo sgdisk -i 1 /dev/sda
  
Größe eines physischen Sektors des Datenträgers
+
'''Erzeugung eines Backup-Images einer mit GPT initialisierten Festplatte'''
  
die minimale/optimale/maximale E/A-Transferblockgrößen für den Datenträger
+
sudo sgdisk -b /mnt/gpt.img /dev/sda
  
Größe der vom später formatierten Dateisystem verwendeten Blocke
+
'''Importieren einer GUID-Partitionstabelle aus einer externen Datei'''
  
Bei SSDs kann die Größe eines "Eraseble Blocks" eine Rolle spielen.
+
sudo sgdisk -l /mnt/gptbackup.dat /dev/sda
  
Ein logischer Sektor hat oft, aber nicht immer eine Größe von 512 Byte. Ein physischer Sektor, der die kleinste von der Platte les-/schreibbaren Datenmenge beschreibt, ist ein ganzzahliges Vielfaches eines logischen Sektors. Die Transferblockgrößen sind individuell für das jeweilige Gerät und stehen nicht in einfacher Weise zu den Sektorgrößen. Die vom Dateisystem verwalteten Blöcke (Standardgröße oft: 4KiB) sollten einen oder mehrere physische Sektoren vollständig enthalten, da eine Aufteilung eines physischen Sektors auf zwei Blöcke des Dateisystems die Performanz immer verschlechtern würde.
+
'''Ändern des Partitionsnamens einer GPT auf einem Datenträger'''
  
Bei frühen SSDs (Markteinführung vor ca. 2010) muss die Größe eines "Eraseble Blocks" berücksichtigt werden und bei solchen SSDs müssen die Partitionen an Grenzen solcher "Eraseble Blocks" beginnen und enden. Die Größe eines "Eraseble Blocks" hängt ab vom Hersteller und Type des Geräts, ist meistens dem Anwender nicht bekannt und für diesen auch nicht einfach zu bestimmen. In der Regel soll man auf der sicheren Seite liegen, wenn man die Partitionen auf ganze MiB ausrichtet, sofern der Hersteller dazu keine Angaben macht.
+
sudo sgdisk -c 1:"Hauptpartition" /dev/sda
  
Bei modernen SSDs (ca. ab 2010), welche die Zuordnung von logischen zu physischen Blöcken selber dynamisch verwalten und über die Funktion TRIM verfügen, verliert das Konzept des "Eraseble Blocks" seinen Sinn. Wenn man bei modernen SSDs die Partitionen auf ganze MiB ausrichtet, ist bereits alles richtig getan, was der Anwender selbst in der Hand hat. Siehe hierzu auch die Diskussion bei superuser.com.
+
'''Ändern des Partitionstyps einer GPT'''
  
In der Praxis wählt man oft ein "Sector Alignment" der Partitionen auf ganze MiB bzw.
+
sudo sgdisk -t 1:8300 /dev/sda
  
2048 Sektoren bei einer Größe der logischen Sektoren von 512 Byte oder
+
'''Ändern der GUID einer Partition in einer GPT'''
  
256 Sektoren bei einer Größe der logischen Sektoren von 4096 Byte.
+
sudo sgdisk -L "Hauptpartition": /dev/sda
  
Diese Vorgabe verschwendet einige Sektoren, berücksichtigt aber alle bekannten Einflüsse auf die Performanz.
+
'''Löschen eines Eintrags in einer GPT'''
  
Die Programme der Familie gdisk verwenden deshalb als Vorgabe diese Ausrichtung auf ganze MiB, sofern noch keine Partition eingerichtet wurde. Wenn bereits Partitionen existieren, die anders ausgerichtet sind, wird für neue Partitionen ein mit den bestehenden Partitionen kompatibler Wert ermittelt.
+
sudo sgdisk -d 1 /dev/sda
  
Protective MBR
+
'''Rückgängig machen von Löschungen'''
Ein "Protective MBR" enthält eine DOS/MBR Partitionstabelle mit nur einem Eintrag, der den gesamten Datenträger oder jedenfalls den mit diesem Format maximal beschreibbaren Bereich als belegt kennzeichnet.
 
  
Hybrid MBR
+
sudo sgdisk -r /dev/sda
Das ist eine nicht der Spezifikation entsprechende Variante eines "Protective MBR". Neben dessen Schutzeintrag können hier noch bis zu 3 weitere Partitionen redundant zur Beschreibung in der GPT beschrieben werden.
 
  
"Hybrid MBRs" waren erforderlich für Betriebssysteme, solange diese das GPT-Schema nicht beherrschten. Man kann sie außerdem verwenden, um beim Start des Rechners per Bios-Boot-Methode die Startpartition zu bezeichnen, was allerdings die Mitarbeit der Rechnerfirmware voraussetzt und nicht immer funktioniert. Generell gelten "Hybrid MBRs" als unzuverlässig und sollten nur verwendet werden, wenn es keine bessere Möglichkeit gibt.
+
=== Weitere Informationen ===
 +
* Guided Partition Table (GPT)
 +
* [https://de.wikipedia.org/wiki/GUID_Partition_Table GUID Partition Table (Wikipedia)]
 +
* Manpage für gdisk
 +
* Manpage für sgdisk

Aktuelle Version vom 28. Juni 2023, 15:12 Uhr

sgdisk

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! 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.

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.

Syntax

Beim Aufruf muss immer ein zu bearbeitender Datenträger an der Stelle DEVICE angegeben werden:

sudo sgdisk OPTIONEN DEVICE

Eine Erklärung aller Optionen mit ausführlicher Information liefern die Programmierer-Seiten, die Manpage des Programms sowie auszugsweise die folgenden Tabellen:

man sgdisk

Optionen

sgdisk: Auswahl von Optionen ohne Veränderungen an einer GPT

Option Beschreibung
-? Ausgabe eines Hilfetextes der zur Verfügung stehenden Kommandos
-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.
-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
-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

Option Beschreibung
-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.
-e PARTNUM Partition PARTNUM (1 ≤ PARTNUM ≤ 128) aktivieren (aktiv = Bootfähig).
-g GPT und MBR löschen (siehe MBR-Partitionstabelle).
-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

Anzeigen von Partitionen auf einem Datenträger

sudo sgdisk -p /dev/sda

Anzeigen des Inhalts einer Partition auf einem Datenträger

sudo sgdisk -i 1 /dev/sda

Erzeugung eines Backup-Images einer mit GPT initialisierten Festplatte

sudo sgdisk -b /mnt/gpt.img /dev/sda

Importieren einer GUID-Partitionstabelle aus einer externen Datei

sudo sgdisk -l /mnt/gptbackup.dat /dev/sda

Ändern des Partitionsnamens einer GPT auf einem Datenträger

sudo sgdisk -c 1:"Hauptpartition" /dev/sda

Ändern des Partitionstyps einer GPT

sudo sgdisk -t 1:8300 /dev/sda

Ändern der GUID einer Partition in einer GPT

sudo sgdisk -L "Hauptpartition": /dev/sda

Löschen eines Eintrags in einer GPT

sudo sgdisk -d 1 /dev/sda

Rückgängig machen von Löschungen

sudo sgdisk -r /dev/sda

Weitere Informationen