20.09.2011
Ergänzung: Grub 2 in GPT/BIOS-Systemen
von mks.
Dieser Artikel ist eine kurze Ergänzung zu meinem Artikel über GUID-Partitionstabellen auf BIOS-Systemen.
Ich habe festgestellt, dass die Unterstützung für extlinux unter Ubuntu (10.04 „Lucid“) eher … naja … mau ist. Wenn man auf einem so installierten System stattdessen Grub benutzen will, benötigt man eine kleine Partition, z.B. von einem MB Größe, mit dem Partitionstyp EF02 („BIOS-Boot-Partition“).
Hintergrund: Da Grub zu groß ist, um komplett in den Boot-Sektor zu passen, ist er in einen Stage 1 und einen Stage 2-Loader aufgeteilt. Der Stage 2-Loader wird normalerweise in einen kleinen freien Bereich zwischen Master Boot Record und erster Partition geschrieben. Da es diesen Bereich aber auf einem GPT-System nicht gibt, quittiert Grub den Versuch einer Installation mit der Warnmeldung:
Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged.
Hat man die o.g. extra Partition angelegt, kann man Grub wie gewohnt mit grub-install installieren.
20.09.2011
21:45
daniel ¶
Ich hab meine Platte mit gparted formatiert, der lässt vor der ersten Partition automatisch einen Megabyte frei, damit ist das gar nicht nötig.
Besonders für SSDs würde ich gparted empfehlen, da die Partition automatisch an einer 1MB Grenze ausgerichtet werden und man so das Alignment nicht kaputt machen kann…
20.09.2011
22:21
Alex ¶
@Daniel:
GPT != MBR, siehe
http://en.wikipedia.org/wiki/GUID_Partition_Table
20.09.2011
23:10
daniel ¶
Ja, das ist mir schon klar ;-)
gparted kann seit einiger Zeit auch mit GPT umgehen, dazu muss man auf Device -> Set Disklabel gehen und dann Advanced anklicken und gpt im Dropdown-Menü auswählen. Der Rest ist dann völlig gleich…
21.09.2011
01:03
Alex ¶
Wie genau willst du bei einer GPT-Platte ein Megabyte frei lassen? Hinter dem MBR (LBA 0) kommt nämlich noch die eigentliche GPT…
Oder ist GRUB clever genug hinter die GPT zu schauen und sich dort einzubetten? Das Handbuch verweist nämlich explizit auf die im Artikel erwähnte spezielle Partition:
http://www.gnu.org/software/grub/manual/html_node/BIOS-installation.html#BIOS-installation
BTW: Auch wenn das Einbetten im MBR-Gap mal eine clevere Idee war, ist das spätestens seit einigen “kreativen” Nutzungen unbrauchbar:
http://www.chiark.greenend.org.uk/ucgi/~cjwatson/blosxom/debian/2010-08-28-windows-applications-making-grub2-unbootable.html
21.09.2011
11:28
daniel ¶
GRUB2 kann seine Stage1.5 an eine beliebige Stelle schreiben, deshalb schreibt er hinter die GPT (eigentlich wie mit der speziellen Partition, nur das sie nicht in der Partitionstabelle steht).
gparted erzwingt das sogar, indem man den Anfang der ersten Partition nicht unter 2MB einstellen kann.
Das Problem mit Windows hab ich nicht, da Windows GPT nur mit EFI-Boards benutzen kann (gibts sowas schon außer in Macs?), insofern kommt eine Windows-Installation eh nicht in Frage.
PS: Hier ist meine Partitionstabelle:
—
GPT fdisk (gdisk) version 0.7.2
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 107463888 sectors, 51.2 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 79F364B3-2EF3-4D09-9B1D-697E21D0CC0C
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 107463854
Partitions will be aligned on 2048-sector boundaries
Total free space is 3213 sectors (1.6 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 526335 256.0 MiB EF00
2 526336 107462655 51.0 GiB 0700
—
21.09.2011
11:17
mks ¶
Alex, vielen Dank für den Hinweis auf das Handbuch.
Es wäre schon möglich, dass Grub auch auf GPT-Platten einen evtl. vorhandenen Bereich vor der ersten Partition erkennt. Sicher weiß ich das aber nicht.
Allerdings sagt das Handbuch auch deutlich, warum die Lösung mit dem MBR-Gap eigtl. noch nie wirklich gut war. Die Variante mit eigener Partition scheint mir derzeit die sauberste zu sein.
PS: Bei uns muss man keine Fake-E-Mail-Adressen angeben, man kann das Feld einfach leer lassen und sogar ganz anonym kommentieren. :-)
06.08.2012
12:45
ralle ¶
Hallo Freunde,
sorry, dass ich nach gut einem Jahr dieses Thema erneut erwärme, aber ich habe hier und da noch einige Unklarheiten zu der GRUB(2)-Thematik.
Etwas Historie wenn ihr erlaubt! Stark eingedampft,ich hoffe ich vergesse nichts Wichtiges…
Ich habe meinem T400 vor einigen Tage eine SSD und 8GB RAM spendiert und habe mich entschlossen das System neu aufzusetzen. Folgendes hatte ich vor: 1 Platte, kein Dual-Boot, nur Linux ext4, kein SWAP, GPT-Partinionierung.
Was ich mittlerweile herausgelesen habe ist, dass man für GRUB und BIOS eine separate Partition (dateisystemlos) mit Flag EF02 anlegen sollte. Soweit so gut. Bitte beachtet folgenden Link: https://wiki.archlinux.org/index.php/GRUB2#Install_grub-bios_boot_files . Hier werden bei der ersten “recommendeten” Aktion 4 Schritte erläutert. Diese werden aber bei der offiziellen Arch-Installationsanleitung via pacstrap nicht erwähnt! https://wiki.archlinux.org/index.php/Installation_Guide#GRUB . Ich habe schlussendlich diese Schritte nicht gemacht und es scheint alles zu funktionieren. Da ich aber an der Stelle eher Perfektionist bin und ausserdem nicht dumm sterben will, brennt mir des Rätsels Lösung unter den Fingernägeln. Sind diese Schritte nur nice-to-have, kommen die nur beim Upgrade von GRUB-legacy zum Tragen??? Beachtet bitte zusätzlich meine Diskussion, die ich im Arch Forum losgetreten habe und die bisher, naja, nicht wirklich hilfreich war: https://bbs.archlinux.org/viewtopic.php?id=146428 .
Sorry für diese wissenschaftliche Abhandlung. Hoffe trotzdem auf euer Feedback!
VG
Ralle
06.08.2012
21:38
mks ¶
Wenn ich mich recht erinnere, schreiben neuere Versionen von gdisk standardmäßig an den 4K-Grenzen und lassen am Anfang der SSD/HD den nötigen Platz.
Ansonsten: wenn Du etwas falsch gemacht hättest, würde das System nicht booten. Du bist mit der Installation fertig, Perfektionist oder nicht.
PS: Ein wunderschönes deutsches Wort für “to recommend” ist “empfehlen”.
07.08.2012
00:35
Ralle ¶
Guten Morgen mks,
vielen Dank für deine Mühe und die kostenfreie Übersetzung. Der technischen Seite gibt es nicht mehr wirklich viel hinzuzufügen. Zu dem Anglizismus möchte ich noch anmerken, dass es sich um ein buwusst angesetztes stilistisches Mittel handelte, welches sich auf den Originalartikel bezog. Deswegen steht es auch in Anführungsstrichen.
VG