Gdisk

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Die GUID Partition Table (GPT) hat den Master Boot Record als Partitionsschema abgelöst. Bearbeitet wird sie mit gdisk, dem Gegenstück zu fdisk. Der MBR und das Werkzeug fdisk sind in einem eigenen Artikel beschrieben.

Warum GPT

  • Im MBR sind Anfang und Länge einer Partition je 32 Bit breit. Bei 512-Byte-Sektoren ergibt das 2 TiB als größte adressierbare Platte.
  • Der MBR bietet vier Einträge. Alles darüber hinaus geht nur über die Krücke der erweiterten Partition mit einer verketteten Liste.
  • Der MBR kennt keine Prüfsummen und keine zweite Kopie. Ist der erste Sektor beschädigt, ist die Aufteilung weg.

GPT behebt alle drei Punkte.

Aufbau einer GPT-Platte

Abbildung 1: Aufbau einer GPT-Platte

Bereich Lage Inhalt
Protective MBR LBA 0 Ein einziger Eintrag vom Typ 0xEE über die gesamte Platte
GPT-Header LBA 1 Signatur, Prüfsumme, GUID der Platte, Lage der Tabelle, erster und letzter nutzbarer LBA
Partitionstabelle LBA 2–33 128 Einträge zu je 128 Byte
Nutzdaten ab LBA 34 die eigentlichen Partitionen
Sicherungstabelle vor dem Ende Kopie der Partitionstabelle
Sicherungs-Header letzter LBA Kopie des Headers

Der Protective MBR

  • Er sorgt dafür, dass Werkzeuge, die nur MBR kennen, eine vollständig belegte Platte sehen und sie nicht versehentlich überschreiben.
  • Deshalb meldet fdisk auf einer GPT-Platte den Typ ee.

Die doppelte Ablage

  • Header und Partitionstabelle liegen am Anfang und am Ende der Platte.
  • Beide sind durch CRC32-Prüfsummen abgesichert. gdisk erkennt beim Start, welche der beiden Kopien beschädigt ist.
  • Aus der jeweils intakten Seite lässt sich die andere wiederherstellen (siehe unten).

Der Partitionseintrag

Abbildung 2: Aufbau eines Eintrags in der Partitionstabelle

Byte Länge Inhalt
0–15 16 Typ-GUID – wofür die Partition gedacht ist
16–31 16 Partitions-GUID – bezeichnet genau diese eine Partition
32–39 8 erster LBA
40–47 8 letzter LBA
48–55 8 Attribute als Bitflags
56–127 72 Name der Partition, 36 Zeichen in UTF-16
  • Die Partitions-GUID wird beim Anlegen zufällig erzeugt. Sie ist das, was als PARTUUID in /etc/fstab oder in der Kernel-Kommandozeile auftauchen kann.
  • Erster und letzter LBA sind 64 Bit breit. Damit ist die 2-TiB-Grenze aufgehoben.
  • Es gibt keine erweiterten und keine logischen Partitionen mehr – alle Einträge sind gleichwertig.

Wichtige Typcodes

gdisk zeigt die 16 Byte lange Typ-GUID als vierstelligen Kurzcode an.

Code Bedeutung entspricht im MBR
8300 Linux filesystem 83
8200 Linux swap 82
8e00 Linux LVM 8e
fd00 Linux RAID fd
ef00 EFI System Partition ef
ef02 BIOS boot partition
0700 Microsoft basic data 07
  • Die vollständige Liste zeigt im Programm die Taste l.
  • ef02 hat im MBR keine Entsprechung: Diese kleine Partition ohne Dateisystem nimmt die zweite Stufe von GRUB auf, wenn eine GPT-Platte per BIOS gestartet wird.

Partitionsschema und Startverfahren

Das Partitionsschema und die Art, wie der Rechner startet, sind zwei unabhängige Entscheidungen. Linux kommt mit allen vier Kombinationen zurecht:

BIOS UEFI
MBR der klassische Fall möglich, unüblich
GPT braucht eine BIOS boot partition (ef02) der Normalfall, braucht eine ESP (ef00)
  • Windows ist enger gefasst und verlangt MBR mit BIOS oder GPT mit UEFI.

gdisk

gdisk gehört zum Paket gdisk und arbeitet nicht auf libparted auf, sondern bringt eigene Module mit. Es ist interaktiv und erwartet einzelne Tastendrücke.

Installation

# apt install gdisk

Auf Rocky Linux und anderen RHEL-Derivaten:

# dnf install gdisk

Aufruf

# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.9

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries in memory.

Command (? for help):
  • Der Partition table scan ist die wichtigste Zeile beim Start: Er sagt, was gdisk auf der Platte vorgefunden hat.
  • Findet gdisk nur einen MBR, bietet es an, ihn im Speicher nach GPT umzuwandeln. Geschrieben wird auch dann erst mit w.

Das Hauptmenü

Taste Wirkung
? Hilfe zum aktuellen Menü
p Partitionstabelle anzeigen
l bekannte Partitionstypen auflisten
n neue Partition anlegen
d Partition löschen
t Typcode einer Partition ändern
c Namen einer Partition ändern
i Details zu einer Partition
s Partitionen sortieren
b GPT-Daten in eine Datei sichern
o neue, leere GPT anlegen
v Platte prüfen
r Menü für Reparatur und Umwandlung
x Expertenmenü
w schreiben und beenden
q beenden, ohne zu schreiben
  • Häufige Verwechslung: p zeigt die Partitionstabelle, l listet die Typen. Bei fdisk ist es genauso.

Die Partitionstabelle anzeigen

Command (? for help): p
Disk /dev/sdb: 2097152 sectors, 1024.0 MiB
Model: QEMU HARDDISK
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 8F3C1A2E-4B77-4E1D-9C05-2A6E7B1D4F80
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 2097118
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   8300  Linux filesystem
   2         1050624         2097118   511.0 MiB   8E00  Linux LVM
  • First usable sector is 34 – davor liegen Protective MBR, Header und Tabelle.
  • last usable sector endet vor dem Plattenende, weil dort die Sicherung liegt.
  • Partitions will be aligned on 2048-sector boundaries – die Ausrichtung auf 1 MiB, genau wie bei fdisk.

Eine Partition anlegen

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +512M
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'
  • Die Vorgaben lassen sich mit der Eingabetaste übernehmen. Der Vorschlag für den ersten Sektor ist immer der nächste ausgerichtete freie Sektor, nicht 34.
  • Die Größe gibt man als +512M oder +20G an.
  • Der Typ wird gleich beim Anlegen abgefragt – anders als bei fdisk, wo man ihn nachträglich mit t setzt.

Typ und Name ändern

Command (? for help): t
Partition number (1-2): 2
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): 8e00
Changed type of partition to 'Linux LVM'
Command (? for help): c
Partition number (1-2): 1
Enter name: system
  • Der Name ist ein reines Etikett in der Tabelle. Er hat nichts mit dem Label eines Dateisystems zu tun.

Prüfen

Command (? for help): v

No problems found. 2014 free sectors (1007.0 KiB) available in 2
segments, the largest of which is 2014 sectors (1007.0 KiB) in size.
  • v vergleicht primäre und gesicherte Strukturen, prüft die CRC32-Summen und meldet Überlappungen.

Sichern

Command (? for help): b
Enter backup file: /root/sdb-gpt.bin
The operation has completed successfully.
  • Die Datei enthält Protective MBR, Header und Partitionstabelle. Sie gehört auf ein anderes Medium.
  • Zurückgeladen wird sie im Reparaturmenü mit l.

Schreiben oder verwerfen

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

Ohne Schreiben:

Command (? for help): q
  • Bis zum w passiert auf der Platte nichts. Alle Änderungen stehen im Arbeitsspeicher.

Reparatur: das Menü r

Abbildung 3: Wege im Reparaturmenü

Command (? for help): r

Recovery/transformation command (? for help): ?
Taste Wirkung
b Sicherungs-Header verwenden und die primären Daten daraus aufbauen
c Sicherungstabelle laden und die primäre Tabelle daraus aufbauen
d primären Header verwenden und die Sicherung daraus aufbauen
e primäre Tabelle laden und die Sicherung daraus aufbauen
l Partitionsdaten aus einer Sicherungsdatei laden
f vorhandenen MBR laden und daraus eine frische GPT bauen
g GPT in einen MBR umwandeln und beenden
h Hybrid-MBR erzeugen
o Daten des Protective MBR anzeigen
m zurück ins Hauptmenü
  • Die Richtung der Buchstaben ist der Knackpunkt: b und c reparieren nach vorne aus der Sicherung, d und e reparieren nach hinten aus den primären Daten.
  • h ist mit Vorsicht zu genießen. Ein Hybrid-MBR hält dieselbe Platte gleichzeitig für MBR- und GPT-partitioniert und ist eine dauerhafte Fehlerquelle.
  • Nach jedem Eingriff erst v, dann w.

Das Expertenmenü x

Taste Wirkung
a Attribut-Bits einer Partition setzen
c Partitions-GUID ändern
g GUID der Platte ändern
f alle GUIDs neu zufällig erzeugen
d eingestellten Ausrichtungswert anzeigen
l Ausrichtungswert setzen
e Sicherungsstrukturen ans Plattenende verschieben
n neuen Protective MBR erzeugen
s Größe der Partitionstabelle ändern
z GPT-Strukturen zerstören und beenden
m zurück ins Hauptmenü
  • f ist wichtig nach dem Klonen einer Platte: Sonst tragen Original und Kopie dieselben GUIDs, und das System greift auf die falsche zu.
  • e braucht man, wenn eine Platte oder ein LUN nachträglich vergrößert wurde – die Sicherung liegt dann nicht mehr am Ende.
  • z löscht die GPT vollständig. Kein Rückgängig.

Die anderen Programme des Pakets

Programm Zweck
gdisk der interaktive Editor
cgdisk dieselbe Funktion mit Menüführung im Terminal
sgdisk für Skripte, alle Aktionen als Kommandozeilenoptionen
fixparts repariert MBR-Platten, etwa fälschlich als GPT markierte

sgdisk