Wie in den Schwerpunktartikeln dieser Ausgabe schon ausführlich besprochen, verwenden neue Rechner (vor allem solche, die mit Windows 8 ausgeliefert werden) eine neue Firmware namens UEFI [1]; damit verbunden gibt es auch eine neue Methode, Festplatten zu partitionieren. GPT (GUID Partition Table) ist auf Apples Macs schon länger im Einsatz, für PCs ist es aber Neuland [2].

Wenn Sie auf einem Rechner mit GPT fdisk nutzen wollen, um einen Blick auf die Partitionierung zu werfen, erhalten Sie wenig brauchbare Information: Statt der erhofften Tabelle erscheint (nach einer GPT-Warnung) nur eine einzige Partition vom Typ GPT, welche die ganze Platte zu füllen scheint (Listing 1).

Listing 1

"fdisk"-Ausgabe

susepc:/home/esser # fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The
util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 750.2 GB, 750156374016 bytes
[...]
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.

Was Sie dort sehen, ist der Inhalt des so genannten Protective MBR – dieser liegt als Schutzmechanismus an der Stelle, wo MBR-basierte Partitionierungstools die Partitionstabelle erwarten. Der stets einzige vorhandene Eintrag gibt vor, dass die gesamte Platte durch eine Partition von Typ GPT belegt wäre. Das stimmt zwar nicht, hält aber ältere Partitionierungstools (die GPT nicht kennen) erfolgreich davon ab, neue Partitionen nach dem MBR-Schema zu erzeugen und damit Daten auf der Platte zu löschen.

GPT-Partitionstabellen

GPT (GUID Partition Table) verwendet einen ganz anderen Aufbau als die bisher üblichen MBR-Tabellen: Was Sie über primäre, erweiterte und logische Partitionen wissen, können Sie in der GPT-Welt vergessen – es gibt nur noch Partitionen, und davon (theoretisch) bis zu 128 Stück auf einer Platte. Das Partitionierungsprogramm von Windows 8 beharrt zwar auf der Bezeichnung primäre Partition (Abbildung 1), dieser Begriff hat für GPT-Platten aber keine Bedeutung.

Abbildung 1: Windows spricht bei GPT-Platten durchgängig von "primären Partitionen", der Begriff ist hier aber falsch.

Die Bezeichnungen der einzelnen Partitionen einer Platte /dev/sda sind jetzt einfach durchnummeriert: Sie sprechen diese über /dev/sda1, /dev/sda2 usw. an. Dabei darf es durchaus Lücken zwischen den Nummern geben, es ist aber üblich, einfach fortlaufend Nummern zu vergeben.

GPT fdisk

Am leichtesten gelingt der Einstieg in die GPT-Partitionierung mit gdisk, dessen Name eine Abkürzung für GPT-fdisk ist: Das Tool lehnt sich von der Bedienung stark an fdisk an und weicht nur dort von dem Klassiker ab, wo es unvermeidbar ist. Sie brauchen in jedem Fall Root-Rechte für die Benutzung von gdisk, auch dann, wenn Sie nur einen Blick auf die vorhandenen Partitionen werfen wollen. Um als normaler Anwender wenigstens die Partitionsliste abzurufen, können Sie den Befehl

cat /proc/partitions

verwenden, finden in der Ausgabe aber nur Hinweise auf Größe und Gerätedatei der jeweiligen Partition.

Für einen ersten Blick auf die Partitionierung steht die Option -l (list) bereit, die allerdings zwingend die Angabe einer Gerätedatei (/dev/sda, /dev/sdb etc.) erwartet (Abbildung 2). Bei fdisk ist es genauso möglich, die Platte anzugeben, aber dort kann man das Argument auch weglassen, und fdisk zeigt dann Informationen über sämtliche Platten an.

Abbildung 2: Die Ausgabe von "gdisk" ist informativ, sie verrät, welche Partitionstabellen es gibt.

Um die Partitionierung einer Platte zu bearbeiten, rufen Sie gdisk mit dem Gerätenamen der Platte als einzigem Argument auf, also z. B.

gdisk /dev/sda

Das Programm sucht dann nach Partitionstabellen in verschiedenen Formaten und berichtet über das Resultat der Suche: Auf einem GPT-System sollten Sie die Einträge MBR: protective und GPT: present (sowie Hinweise auf nicht vorhandene BSD- und APM-Tabellen) finden.

Dass Sie nun in gdisk arbeiten, erkennen Sie am Prompt, der sich zu Command (? for help): ändert. Sie können sich jederzeit mit p (print) die aktuellen Partitionierungsdaten anzeigen lassen. Wie bei fdisk spiegelt die Anzeige alle bisher geplanten (aber noch nicht ausgeführten) Änderungen wider – Sie verlassen das Programm mit q (quit), dann gehen alle Änderungen verloren. Erst wenn Sie w (write) eingeben, schreibt gdisk die neuen Daten in die Partitionstabelle.

Löschen und erzeugen

Mit gdisk können Sie bestehende Partitionen nicht in der Größe verändern; dafür benötigen Sie parted (siehe unten). Aber Sie können nicht länger benötigte Partitionen löschen und im frei gewordenen Bereich neue erzeugen. Bei neu gekauften Platten, die in der Regel MBR-partitioniert sind, können Sie auch eine neue Partitionstabelle erzeugen:

  • Mit o löschen Sie die bestehende Partitionierung vollständig und legen eine neue GPT-Tabelle (sowie einen Protective MBR) an. gdisk fragt dann nach, ob Sie das wirklich tun wollen; antworten Sie darauf mit Y – auch dieser Schritt wird erst ausgeführt, wenn Sie die Änderungen später mit w sichern.
  • Über n erstellen Sie eine neue Partition. Interaktiv sind nun ein paar Fragen zu beantworten, zunächst geht es um die Nummer der anzulegenden Partition (zwischen 1 und 128); gdisk schlägt selbständig die nächste freie Nummer vor, so dass Sie hier einfach [Eingabe] drücken. Eine Abfrage zu primären, erweiterten oder logischen Partitionen (wie bei fdisk) gibt es hier nicht, weil GPT diese Konzepte ja nicht kennt. Weiter geht es mit Anfang und Ende der neuen Partition. Den Vorschlag für den Anfang sollten Sie in der Regel übernehmen; dadurch bleiben später keine Lücken. Das Ende der Partition können Sie gdisk selbst berechnen lassen, indem Sie eine Größe in der Form +100M (für 100 MByte) oder +20G (für 20 GByte) angeben. Es fehlt noch die Angabe des Partitionstyps; die Vorgabe ist hier 8300 (Linux filesystem) – mit L lassen Sie sich an dieser Stelle alle bekannten Typen ausgeben. Bauen Sie eine komplett neue Platte auf, die auch bootfähig sein soll, ist z. B. der Typ ef00 (EFI System) wichtig, denn UEFI-Systeme benötigen zum Booten immer eine separate EFI-Partition, die 100 bis 300 MByte groß sein sollte.
  • Mit d werden Sie Partitionen wieder los. Wenn Sie Partitionen "in der Mitte" löschen, bleiben Lücken – Sie können später über das Kommando s (sort) dafür sorgen, dass diese Lücken verschwinden. Dadurch ändern sich aber die Gerätedateinamen von Partitionen, die nun weiter nach vorne rücken (z. B. von /dev/sda7 auf /dev/sda6).

Nach jedem Änderungsschritt sollten Sie mit p überprüfen, ob das Programm so gearbeitet hat, wie Sie es sich vorgestellt haben. Schritte rückgängig zu machen, ist zwar nicht möglich, aber bei unpassenden Ergebnissen können Sie jederzeit mit q die Bearbeitung abbrechen und neu starten. Wollen Sie die Änderungen auf die Platte schreiben, geben Sie w ein. Damit beenden Sie gdisk auch im Anschluss.

Tabelle 1 zeigt die wichtigsten Kommandos, die gdisk und fdisk anbieten, im Vergleich – für gleiche Aufgaben nutzen Sie meist das gleiche Kommando.

Tabelle 1: Befehle in "fdisk" und "gdisk"

Funktion fdisk gdisk
Partitionsnamen ändern c
Partition löschen d
Detailinformationen zu Partition i
Partitionstypen anzeigen l l
Hilfe m ?
Neue Parition erzeugen n n
Neue Partitionstabelle erzeugen o o
Aktuelle Tabelle anzeigen p p
Abbruch (ohne Änderungen) q q
Partitiontyp ändern t t
Geänderte Tabelle schreiben w w
Experten-Optionen x x

parted

Das Standardtool für die Bearbeitung von GPT-Partitionstabellen ist parted, das neben GPT- auch klassische MBR-Partitionstabellen kennt. Bevor Sie sich in erste Tests mit dem Programm stürzen, ist eine Warnung angebracht: Anders als fdisk führt parted Kommandos, die Änderungen an der Platte bewirken, sofort aus. In fdisk kann man problemlos mit den diversen Kommandos herumspielen und sich immer wieder mit p den aktuellen Stand ausgeben lassen; erst ein w schreibt dort die geänderten Daten in die Partitionstabelle. Bei parted ist das nicht der Fall. Darum sollten Sie das Tool nur vorsichtig nutzen.

Es empfiehlt sich, zum Experimentieren eine leere externe Platte anzuschließen oder ein leeres Image zu erzeugen: Wenn Sie genug Platz auf der Platte haben, können Sie z. B. über

dd if=/dev/zero of=/tmp/testdisk.img bs=1G count=5

eine 5 GByte große leere Datei erzeugen und diese dann mit

parted /tmp/testdisk.img

öffnen. (Für diese Tests sind nicht mal Root-Rechte nötig; als normaler Anwender starten Sie parted durch Angabe des vollen Pfads /usr/sbin/parted.) In einem ersten Schritt bereiten Sie das Image dann vor:

(parted) mklabel gpt

Danach können Sie loslegen und z. B. neue Partitionen in dieser Imagedatei erzeugen. parted kann diverse weitere Tools verwenden, um neue Partitionen auch gleich geeignet zu formatieren, z. B. als Ext3- oder Ext4-Datenträger.

Wenn Sie mit parted neue Partitionen erzeugen, gibt sich das Programm etwas unkomfortabel, weil es nach exakten Anfangs- und Endadressen fragt und keine Vorschläge unterbreitet. Die meisten Anwender setzen darum auf das Tool gparted, das ein Frontend für parted mit grafischer Oberfläche ist.

Interessant ist die Arbeit mit parted aber z. B., wenn Sie detaillierte Informationen zur Partitionierung erhalten möchten, denn es gibt nicht nur alle vorhandenen Einträge in der Tabelle aus, sondern schaut auch in jede Partition hinein und versucht, das Dateisystem zu ermitteln, mit dem diese formatiert wurde. Abbildung 3 zeigt die Beispielausgabe für eine GPT-Festplatte, die im Dual-Boot-Betrieb mit Windows 8 und Linux eingerichtet wurde.

Abbildung 3: Anders als "gdisk", kann "parted" auch anzeigen, mit welchen Dateisystemen die Partitionen formatiert wurden.

gparted

Komfortabel lässt sich parted nur über gparted nutzen, das viele aktuelle Linux-Distributionen als Partitionierungsprogramm einsetzen. Abbildung 4 zeigt, wie das Programm die obige Beispielplatte nach dem Start anzeigt. Anders als parted merkt sich die GUI-Variante alle Änderungen nur vor und führt sie zum Schluss gemeinsam aus, so dass sich hier wieder ein Verhalten wie bei fdisk ergibt. Es ist also wichtig, immer darauf zu achten, mit welchem der Programme Sie arbeiten und welchen Modus es für Änderungen nutzt.

Bei unseren Experimenten mit Dual-Boot-Systemen ergab sich oft eine Situation, in der Linux noch bootete, Windows aber nicht – darum finden Sie im Kasten Windows wieder booten lassen noch einen Tipp zur Wiederherstellung der Windows-Boot-Daten; passend zur Rubrik müssen Sie auch dort Shell-Tools nutzen. Aber keine Sorge: Beiträge zu Windows werden nicht die Regel, sie sind in dieser Ausgabe dem Titelthema geschuldet. (hge)

Abbildung 4: Mit "gparted", dem grafischen Frontend für "parted", können Sie auch die Größe von vielen Partitionen ohne Datenverlust ändern.

Windows wieder booten lassen

Da Sie GPT-Platten in der Regel nur auf Rechnern mit vorinstalliertem Windows 8 begegnen, hier ein kleiner Tipp für die Windows-Kommandozeile: Er ist interessant, wenn Windows nicht mehr startet und stattdessen einen Bluescreen mit obskuren Fehlermeldungen (error 0xc0000225) anzeigt.

Booten Sie dann von einer Windows-Installations-DVD, starten Sie aber nicht die Installation, sondern wechseln Sie zu den Wiederherstellungsoptionen. In einem der Untermenüs können Sie eine Shell öffnen. Wenn Ihre EFI-Partition die erste auf der Platte ist, können Sie mit folgenden Befehlen die Boot-Informationen von Windows reparieren:

C:\> diskpart
DISKPART> sel disk 0
DISKPART> sel part 1
DISKPART> assign letter=z
DISKPART> exit

Danach ist die EFI-Partition als Windows-Laufwerk Z: ansprechbar, und mit

C:\> bcdboot c:\Windows /s z: /f UEFI

können Sie das Programm bcdboot neue Boot-Informationen auf die EFI-Partition schreiben lassen. Diesen Trick mussten wir bei unseren Installationsexperimenten für die Schwerpunktartikel dieser Ausgabe mehrfach anwenden; er stammt aus einem Blog-Beitrag [3].

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare