GPT, Grub und bios_grub

27/12/2011 - 23:15 von Ralph Aichinger | Report spam
Ich habe gerade nach einem Festplattencrash ein Restore gemacht,
was glücklicherweise recht problemlos war.

Ein Fallstrick war aber dabei: Die neue Platte ist 2TB groß,
Debian hat eine GPT statt einer altmodischen DOS-Partitionstabelle
angelegt, und Grub wollte sich nachher nicht installieren lassen,
weil er eine Partition mit dem Flag "bios_grub" braucht. Bei dem
Versuch das Flag einzuschalten und dann Grub zu installieren habe
ich mir das Filesystem zerschossen, wenn ich das richtig verstehe.
Denn ich habe dieses Flag (so wie das "bootable" der MSDOS-fstab)
in der zu bootenden Root-Partition umgelegt. Großer Fehler, oder?

Eine extra angelegte kleine Partition mit diesem Flag hat dann
die Lösung gebracht.

Sehe ich das richtig:

* Um mit Grub (und womit sonst?) von einer GPT zu booten braucht
man eine Partition mit dem Flag "bios_grub", die man z.B. mit
Partimage so anlegen kann.

* Nach der Installation von Grub ist ein eventuell auf dieser Partition
angelegtes Filesystem kaputt, denn anders als beim Bootable-Flag
geht es nicht nur um das Flag selbst, sondern es wird auch in die
Partition reingeschrieben.

* Es empfiehlt sich daher eine eigene Partition mit z.B. 100 MB (diese
Zahl habe ich mehrmals ergooglet, ohne sie definitiv bestàtigen zu
können) anzulegen, ohne Filesystem.

Oder habe ich da was falsch verstanden? Gerne auch Hinweise auf
aktuelle Dokumentation dazu, die den aktuellen Zustand bei Debian
beschreibt.

Und: Was ist wirklich der Platzbedarf? Stimmen die 100MB als definitive
Angabe? Als Faustregel?

Danke!

/ralph
 

Lesen sie die antworten

#1 Sven Hartge
29/12/2011 - 07:15 | Warnen spam
Ralph Aichinger wrote:

Ein Fallstrick war aber dabei: Die neue Platte ist 2TB groß, Debian
hat eine GPT statt einer altmodischen DOS-Partitionstabelle angelegt,
und Grub wollte sich nachher nicht installieren lassen, weil er eine
Partition mit dem Flag "bios_grub" braucht. Bei dem Versuch das Flag
einzuschalten und dann Grub zu installieren habe ich mir das
Filesystem zerschossen, wenn ich das richtig verstehe. Denn ich habe
dieses Flag (so wie das "bootable" der MSDOS-fstab) in der zu
bootenden Root-Partition umgelegt. Großer Fehler, oder?



Großer Fehler, ja.

Eine extra angelegte kleine Partition mit diesem Flag hat dann die
Lösung gebracht.



So soll das sein. 100MB reichen hier aus.

Sehe ich das richtig:

* Um mit Grub (und womit sonst?) von einer GPT zu booten braucht man
eine Partition mit dem Flag "bios_grub", die man z.B. mit Partimage so
anlegen kann.



Ja. Da ist kein Dateisystem drin, sondern einfach reservierter Platz,
damit GRUB (und jeder andere Bootloader) seine erste Stage dort ablegen
kann.

Das wird dewesgen benötigt, weil bei der GPT nach dem Geràte-Anfang
nicht mehr so viel "Luft" ist wie bei der klassischen
MSDOS-Partitionstabelle.

Dort, in diesen normalerweise ungenutzten Bereich (Sektoren 1 bis 62)
konnten sich früher die Bootloader ausbreiten. Bei der GPT gibt es dies
so nicht mehr, daher braucht es ein definiertes "Heim" für die
Bootloader.

Als Bonus weiss man dann immer, wo das Ding sich hinschreibt und es gibt
keine Überraschungen, wenn irgendetwas auf den vom Bootloader benutzten
Bereichen herumpfuscht.

Beispiel: Früher hat manche Enterprise-Software dort in einen Sektor
Daten seiner Installation geschrieben, um die Einhaltung der Lizenz
überwachen zu können. Ist natürlich doof, wenn dort auch die Stage-1.5
vom GRUB liegt und diese dadurch zerstört wird.

* Nach der Installation von Grub ist ein eventuell auf dieser
Partition angelegtes Filesystem kaputt, denn anders als beim
Bootable-Flag geht es nicht nur um das Flag selbst, sondern es wird
auch in die Partition reingeschrieben.



In diese Partition legt man erst gar kein Dateisystem hinein, da
unnötig.

* Es empfiehlt sich daher eine eigene Partition mit z.B. 100 MB (diese
Zahl habe ich mehrmals ergooglet, ohne sie definitiv bestàtigen zu
können) anzulegen, ohne Filesystem.



Genau.

Und: Was ist wirklich der Platzbedarf? Stimmen die 100MB als
definitive Angabe? Als Faustregel?



Passt. Eigentlich würden auch 10MB reichen, aber bei den heutigen
Plattengrößen ist man mit 100MB auf der absolut sicheren Seite.



Sigmentation fault. Core dumped.

Ähnliche fragen