pit234a
Well-Known Member
Hi.
gerade spiele ich mit gpart um es besser kennen zu lernen und dabei auch den GPT ein wenig zu lernen. Sowas braucht man nicht oft, aber es gibt dabei Dinge, die ich nicht verstanden hatte und wenn ich mir dann ansehe, wie es tatsächlich aussieht, werden mir die oft klarer.
Nunja. Das meiste, was mich interessierte, habe ich wohl inzwischen kapiert.
Aber: wie bootet ein System mit einem GPT?
Ich habe mir eine Partition angelegt und den /boot/gptboot dorthin installiert. Soweit, so gut. Da liegt nun der Bootcode also am Anfang der (einzigen) Partition. An eine andere Stelle (etwa den "MBR") passte dieser Code gar nicht, der geht nur auf die Partition.
Im LBA0, dem "MBR", ist aber keinerlei Bootcode eingetragen worden.
gpart bootcode -p /boot/gptboot -i 1 da0 schreibt also, wie auch zu vermuten ist, genau den ausgewählten Bootcode an den angegebenen Platz, mehr nicht. Es hätte ja sein können, dass solch ein Aufruf automatisch auch dazu führt, dass im "MBR" die erste Partition als Bootfähig gesetzt wird und vielleicht ein MBR-Bootcode eingefügt wird, der dann den gptboot automatisch startet.
Bei manchen Systemen wird wohl ein EFI benutzt.
Dazu lese ich dann aber, dass dieses aus dem "MBR" aufgerufen und in der ersten Partition liegen müsste. Ist mein Bootcode (aus /boot/gptboot) ein EFI?
Im LBA0 ("MBR") sieht es so aus:
Die Einträge sind nachvollziehbar. Aber, da ist kein Bootcode drin und da ist keine Partition als Bootfähig gekennzeichnet.
Ganz offenbar startet dieser "MBR" nichts.
Ich will es nicht probieren und ein System in meine Partition installieren, um zu sehen, ob das dann bootet. Nach meiner Überzeugung dürfte es dies nicht!
Mein Bios weiß ja nichts davon, dass ich nun einen GPT benutzen will und vielleicht ein EFI.
Das ist nun kein aktuelles Problem und es drängt gar nichts.
Wenn ich aber mal (vollkommen blödsinnigerweise) einen bootbaren Stick mit GPT erstellen möchte, wie gehe ich dann vor? (Vermutlich ist die Aufgabe beim Stick sinnlos, aber grundsätzlich doch immer gleich).
Dabei ist der Begriff bootbar nun noch neutral, aber ich meinte natürlich, booten von einem i386 oder amd64 ("Bios-System").
Interessieren würde mich aber auch EFI, denn manche Netbooks und Macs nutzen das ja. Könnte ein solcher Rechner, etwa ein Mac, von einem unter FreeBSD erstellten, mit EFI bootbar erstellten Stick, gebootet werden? Ist EFI gleich EFI oder gibt es dann wieder Unterschiede für die jeweiligen Geräte? Wo bekomme ich dann die benötigten EFI-Bootcodes her? Oder versteh ich hier grundsätzlich was gar nicht?
Bin ich bei "Intel"-PCs immer auch auf das Bios angewiesen, oder könnte ich die auch mit einem (von mir selbst erstellten?) EFI booten?
gerade spiele ich mit gpart um es besser kennen zu lernen und dabei auch den GPT ein wenig zu lernen. Sowas braucht man nicht oft, aber es gibt dabei Dinge, die ich nicht verstanden hatte und wenn ich mir dann ansehe, wie es tatsächlich aussieht, werden mir die oft klarer.
Nunja. Das meiste, was mich interessierte, habe ich wohl inzwischen kapiert.
Aber: wie bootet ein System mit einem GPT?
Ich habe mir eine Partition angelegt und den /boot/gptboot dorthin installiert. Soweit, so gut. Da liegt nun der Bootcode also am Anfang der (einzigen) Partition. An eine andere Stelle (etwa den "MBR") passte dieser Code gar nicht, der geht nur auf die Partition.
Im LBA0, dem "MBR", ist aber keinerlei Bootcode eingetragen worden.
gpart bootcode -p /boot/gptboot -i 1 da0 schreibt also, wie auch zu vermuten ist, genau den ausgewählten Bootcode an den angegebenen Platz, mehr nicht. Es hätte ja sein können, dass solch ein Aufruf automatisch auch dazu führt, dass im "MBR" die erste Partition als Bootfähig gesetzt wird und vielleicht ein MBR-Bootcode eingefügt wird, der dann den gptboot automatisch startet.
Bei manchen Systemen wird wohl ein EFI benutzt.
Dazu lese ich dann aber, dass dieses aus dem "MBR" aufgerufen und in der ersten Partition liegen müsste. Ist mein Bootcode (aus /boot/gptboot) ein EFI?
Im LBA0 ("MBR") sieht es so aus:
Code:
[FONT="Courier New"]hexdump -C /home/pit/gpt_55b
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................|
000001c0 01 00 ee ff ff ff 01 00 00 00 ff 73 f3 00 00 00 |...........s....|
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|[/FONT]
Ganz offenbar startet dieser "MBR" nichts.
Ich will es nicht probieren und ein System in meine Partition installieren, um zu sehen, ob das dann bootet. Nach meiner Überzeugung dürfte es dies nicht!
Mein Bios weiß ja nichts davon, dass ich nun einen GPT benutzen will und vielleicht ein EFI.
Das ist nun kein aktuelles Problem und es drängt gar nichts.
Wenn ich aber mal (vollkommen blödsinnigerweise) einen bootbaren Stick mit GPT erstellen möchte, wie gehe ich dann vor? (Vermutlich ist die Aufgabe beim Stick sinnlos, aber grundsätzlich doch immer gleich).
Dabei ist der Begriff bootbar nun noch neutral, aber ich meinte natürlich, booten von einem i386 oder amd64 ("Bios-System").
Interessieren würde mich aber auch EFI, denn manche Netbooks und Macs nutzen das ja. Könnte ein solcher Rechner, etwa ein Mac, von einem unter FreeBSD erstellten, mit EFI bootbar erstellten Stick, gebootet werden? Ist EFI gleich EFI oder gibt es dann wieder Unterschiede für die jeweiligen Geräte? Wo bekomme ich dann die benötigten EFI-Bootcodes her? Oder versteh ich hier grundsätzlich was gar nicht?
Bin ich bei "Intel"-PCs immer auch auf das Bios angewiesen, oder könnte ich die auch mit einem (von mir selbst erstellten?) EFI booten?