GPT
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 unterlsblk
, 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
- http://skweez.net/erganzung-grub-2-in-gptbios-systemen/
- http://skweez.net/system-auf-guid-partition-table-umstellen/
- https://wiki.archlinux.org/index.php/Grub2
Einzelnachweise
- ↑ UEFI Specification 2.3.1 (uefi.org)
- ↑ AMI - An Introduction to UEFI (embedded.communities.intel.com)
- ↑ Windows and GPT FAQ (msdn.microsoft.com)