GPT

Aus Foxwiki

Die (GPT) GUID Partition Table wurde im Rahmen von der UEFI-Spezifikation entwickelt und tritt als Begriff oft zusammen mit diesem BIOS-Nachfolger auf.

Die GPT hebt einige Einschränkung des Master Boot Records auf, unter anderem, dass die maximale Größe einer Partition auf 2,2 TByte limitiert ist.

Vorteile der GPT

Folgende Vorteile ergeben sich durch die GPT:[1]

  • GPT benutzt zur Adressierung 64-bit Werte (Logical Block Adresses (LBA)), womit bis zu 9,4 Zettabyte adressiert werden können.[2]
  • Unterstützung von mehreren Partitionen - bei den meisten Konfiguration 128. Für MBR-Partitionen ist die Anzahl an primären Partitionen auf 4 limitiert.
  • Bereitstellung eines Primären und eines Backup GUID Partition Table (GPT) Headers.[3] Durch diesen Mechanismus, als auch durch die unten genannten CRC-Checksummen, wird die Sicherheit der Partitions-Metadaten erhöht. Z.B. kann beim versehentlichen Löschen des GPT Headers zu Beginn des Devices noch auf den Backup GPT Header zurückgegriffen werden.
  • Verwendung eines Protective MBR an der LBA 0 zur Gewährleistung der Abwärtskompatibilität für Werkzeuge, die nicht mit GPT umgehen können. Dieser Protective MBR des Partitions-Typs "0xee" veranlasst z. B. fdisk dazu, auf GNU Parted zu verweisen:
#fdisk -l /dev/sdc
#gdisk

Booten mit dem Installationsimage

Auswählen des deutschen Tastaturlayouts

loadkeys de
loadkeys de-latin1

Partitionieren mit gdisk

Mit dem Befehl

 lsblk

könnt ihr euch eure block devices auflisten.

 NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
 fd0      2:0    1     4K  0 disk 
 sda      8:0    0 119,2G  0 disk 
 ├─sda1   8:1    0 115,4G  0 part /
 ├─sda2   8:2    0     1K  0 part 
 └─sda5   8:5    0   3,9G  0 part [SWAP]
 sdb      8:16   0 465,8G  0 disk 
 ├─sdb1   8:17   0   756M  0 part /run/archiso/bootmnt 
 ├─sdb2   8:18   0    40M  0 part 
 sr0     11:0    1 164,1M  0 rom
 loop0    7:0    0   328M  1 loop /run/archiso/sfs/airootfs
  • Es wird in dieser Anleitung davon ausgegangen das die zu partitionierende Festplatte als /dev/sda aufgeführt wird.
  • Passt den block device euren entsprechenden Bedürfnissen an.
  • Wenn eure Festplatte beispielsweise als /dev/sdb aufgeführt wird unter lsblk, dann gebt in den nachfolgenden Befehlen
/dev/sdb an, anstelle von /dev/sda

Aufruf von gdisk

gdisk /dev/sda

? gibt alle Befehle aus.

Command (? for help):

Anlegen der ersten neuen Partition für / (Root):

n

Partitionsnummer 1 ist voreingestellt, (Partition number (1-128, default 1):

Enter.

Ersten Sektor (...)

enter

bestätigen. Letzten Sektor der Partition angeben,

Last sector(2048-4711xy,default = 4711ende) or {+-}size{KMGTP}:

mit +5G wird eine Partition angelegt von 5Gbyte Größe.

Partitionstyp (Linux) in Hexcode eingeben,

Hex code or GUID (L to show codes, Enter = 8300):

Taste L zeigt alle möglichen Codes.
Für Linux root Partition wird 8300 was schon voreingestellt ist eingegeben.

Enter

Nächste Partition anlegen für swap:

n

Partitionsnummer 2 ist voreingestellt,

Partition number (2-128, default 2):
Enter.

Ersten Sektor (...) enter bestätigen. Letzten Sektor der Partition angeben,

Last sector(....,default = 4711ende) or {+-}size{KMGTP}:

mit +500M wird eine Partition angelegt von 500Mbyte Größe.

+500M

Partitionstyp in Hexcode eingeben,

Hex code or GUID (L to show codes, Enter = 8300):

Hexcode für Linux-swap ist 8200 und eingeben.

8200 enter

Falls GRUB per Bios und nicht per UEFI geladen wird, so benötigt man noch eine spezielle kleine Partition, genannt Bios boot Partition mit dem Code ef02. In diesem Beispiel wird eine 3MB kleine Partition ans Ende der Platte angelegt. Sollte man Syslinux als Bootloader verwenden, wird diese zusätzliche Partition nicht benötigt.

n

für neue Partition anlegen.
Partitionsnummer 3 ist voreingestellt es wird aber 128 gewählt, damit man weitere Partitionen dazwischen anlegen kann und die Nummerierung mehr Sinn gibt.

Partition number (3-128, default 3): 128

Partitionsnummer 128 eingeben.
Ersten Sektor (first sector) -3M eingeben.
Letzten Sektor der wird angezeigt. Enter
Hexcode ef02 eingeben.

p

für print um noch einmal alle Partitionen anzeigen zu lassen.
Bis jetzt ist noch nichts an der Festplatte verändert worden. Man kann mit q (quit) die Änderungen abbrechen.
Wenn alles in Ordnung ist dann

w 

für schreiben auf die Festplatte.
Es wird noch einmal gefragt ob die Prozeduren durchgeführt werden sollen. Bestätigen mit Y . Sind die Operationen erfolgreich gewesen so wird das angezeigt,

OK; writing new GUID partition table (GPT).
The operation has completed successfully).

Anlegen der Dateisysteme

Gewöhnliche Partition

"Gewöhnliche" Partitionen werden mit dem Programm mkfs angelegt, wobei der Typ des Dateisystems klar benannt werden muss. Dazu dienen verschiedene links, z. B. mkfs.ext4, der ein Dateisystem vom Typ ext4 anlegt.

Anlegen des Dateisystems vom Typ ext4 auf der Rootpartition sda1 mit der Bezeichnung p_arch:

mkfs.ext4 -L p_arch /dev/sda1

Anzumerken ist, dass Linux nicht in der Lage ist, von jedem Dateisystemtyp aus zu booten. In der boot-Partition ist die Auswahl also eingeschränkt.

Swap-Partition

Eine Swap-Partition ist der Platz einer Festplatte, der den "virtuellen Speicher" beheimatet. Falls die Prozesse mehr RAM brauchen als physikalisch vorhanden, kann Linux die Anfrage nicht bearbeiten und ein Fehler tritt auf. Eine swap Partition hilft in dieser Situation, indem physikalischer RAM durch virtuellen RAM erweitert wird. Linux benutzt diesen Platz der Festplatte (die Swap-Partition), um die Informationen, welche nicht mehr in den physikalischen RAM passen, zu speichern (in Wahrheit ist es ein wenig komplizierter, da Linux versucht, Informationen ins Swap zu schreiben, die nicht oft benötigt werden). Da eine Festplatte im Vergleich zu physikalischem RAM sehr langsam ist, ist dies nur ein Behelf.

Anlegen des Dateisystems vom Typ swap auf der Swap-Partition sda2 mit der Bezeichnung p_swap:

mkswap -L p_swap /dev/sda2

Anzumerken ist, dass diese Partition im Fall, dass zu Energiesparzwecken das RAM auf die Platte ausgelagert werden soll (suspend2disk), mindestens so groß wie das physisch vorhandene RAM sein muss, sonst passt letzteres nicht hinein. Wenn ich also 4 GB physisches RAM habe, muss ich hierfür auch mindestens 4 GB Plattenplatz reservieren.

Grub-Bootloader-Partition

Die dritte Partition, die Bios Boot Partition,welche nur benötigt wird, falls Grub als Bootloader benutzt wird, bleibt unangetastet.


Einbinden der Partitionen

Hier kann der Anleitung für Einsteiger beim Punkt Einbinden der Partitionen weiter gefolgt werden. https://wiki.archlinux.de/title/Anleitung_f%C3%BCr_Einsteiger#Einbinden_der_Partitionen

grub installieren

Falls an dieser Stelle grub noch nicht installiert ist, kann das nachgeholt werden:

arch-chroot /mnt pacman -S grub
arch-chroot /mnt grub-install /dev/sda

grub konfigurieren:

grub-mkconfig -o /boot/grub/grub.cfg

Arch Linux neu starten: Neustarten.

Fehlermeldung von grub

Falls diese Fehlermeldung angezeigt wird:

grub-install /dev/sda
/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.
However, blocklists are UNRELIABLE and their use is discouraged..
/sbin/grub-setup: error: will not proceed with blocklists.

Dann konnte grub nicht installiert werden weil die zusätzliche Partition vom Typ ef02 nicht vorhanden ist.
Abhilfe, man kann die Partition auch nachträglich anlegen. Zum Beispiel ans Ende der Festplatte.
Neu booten mit der Arch Linux Installations-CD.

gdisk /dev/sda

Neue Partition ans Ende der Festplatte anlegen:

Command (? for help): n
Partition number (1-3): 128
First sector (xx-yyyyyy, default = xxx) or {+-}size{KMGTP}: -3M
..
..
Last sector xx-yy,default = Sektorende) or {+-}size{KMGTP}: enter
Hex code or GUID (L to show codes, Enter = 8300): ef02
Changed type of partition to 'Bios boot partition'
Command (? for help): w

Am Ende der Platte ist jetzt die Partition installiert. Mit chroot wie oben grub erneut installieren.
Gpt-MBR nochmal auf sda schreiben.

grub-install /dev/sda
reboot

Weblinks

Quellen

Einzelnachweise

  1. UEFI Specification 2.3.1 (uefi.org)
  2. AMI - An Introduction to UEFI (embedded.communities.intel.com)
  3. Windows and GPT FAQ (msdn.microsoft.com)