2008-10-19 15 views
13

Ich entwickle einen Kernel für ein Betriebssystem. Um es auszuführen, habe ich mich entschieden, GRUB zu verwenden. Zur Zeit habe ich ein Skript an GRUB's stage1, stage2, eine Pad-Datei und den Kernel selbst zusammen, die es bootfähig macht. Das einzige Problem ist, dass wenn ich es laufen, müssen Sie GRUB wissen lassen, wo der Kern ist und wie groß es ist manuell und es dann starten, wie folgt aus:Aktivieren von GRUB automatisch vom Kernel booten

kernel 200+KERNELSIZE 
boot

KERNELSIZE die Größe des Kernels in Blöcken . Das ist in Ordnung und in Ordnung für den Anfang, aber ist es möglich, diese Werte in der Binärdatei zu erhalten und GRUB den Kernel automatisch booten zu lassen? Irgendwelche Vorschläge, wie man das erreicht?

+1

Der herkömmliche Ansatz besteht darin, Ihren Kernel selbst auf ein Dateisystem zu legen, das grub lesen kann; irgendeinen besonderen Grund, warum du das nicht tust? –

+0

Ich stimme mit Charles hier überein. Fügen Sie Ihrem Betriebssystem ein vorhandenes Dateisystem hinzu, bis Ihr Betriebssystem über ein eigenes Dateisystem verfügt. –

+0

Nun, zum Testen haben wir die endgültige Binärdatei (einschließlich GRUB) als eine Datei auf der Festplatte in einem Emulator verwendet werden. Wie würde ich ein Disk-Image erstellen, auf dem sich ein Dateisystem befindet? –

Antwort

2

Ich könnte mir vorstellen, dass Sie einfach Ihre eigene Datei menu.lst conf erstellen können, laden Sie diese in der Grub-Shell mit "configfile /path/to/menu.lst" und dann "setup (hd0)" und ersetzen Sie die Werte nach Bedarf . Ich rate nur, aber .. nicht sagen, was die Unterschiede auf Ihrem benutzerdefinierten Setup sind.

+0

Es stellte sich heraus, dass wir ein altes Tutorial benutzten, das uns das so erklärte, wie wir es waren. Wir haben Charles 'Ratschlag übernommen und das bootfähige Image in eine ISO-Datei verschoben. –