2009-01-08 23 views
6

Ich verwende ein Barebone-Tutorial als Grundlage für ein Betriebssystem, an dem ich arbeite, und es scheint ein älteres Tutorial zu sein: Es kompiliert den Kernel auf ein Disketten-Image und lädt es dann mit GRUB.Wie programmiere ich programmgesteuert eine bootfähige CD?

Grundsätzlich möchte ich immer noch GRUB verwenden, aber ich möchte stattdessen mein Betriebssystem von einer CD laufen lassen. Der Hauptgrund ist, dass ich eigentlich kein echtes Diskettenlaufwerk zur Verfügung habe (ich teste gerade in VirtualBox) und ich habe daher keine Möglichkeit, mein Betriebssystem auf echter Hardware zu testen.

Ich habe im Internet herumgestochert, und ich kann viele Dienstprogramme finden, die eine bootfähige CD von einem Diskettenbild erstellen, aber diese alle scheinen ein tatsächliches Diskettenlaufwerk zu erfordern, und es ist nicht wirklich, was ich bin Auf der Suche nach. Ich möchte am liebsten während meines Make-Schritts eine bootfähige CD haben, ohne das Bild zuerst auf eine Diskette legen zu müssen, was ziemlich sinnlos erscheint.

Ich denke, der einfache Weg, dies zu beantworten: Wie richte ich GRUB ein, um mein Kernel-Image von einer CD zu lesen? Brauche ich ein spezielles Dienstprogramm, um dies von Windows zu tun? (Der Kernel kann sich selbst noch nicht kompilieren, das geht ja schon lange nicht)

Danke!

Antwort

5

Ich habe die Lösung für mein Projekt gefunden, mit ein paar Tipps von den Leuten von OSdev. Es gibt ein Dienstprogramm namens mkisofs (das unter Windows mit einer Cygwin-DLL ausgeführt werden kann), das ein Verzeichnis annimmt und dieses Verzeichnis zu einem ISO-Image macht, das auf eine CD gebrannt werden kann. Mit dem Flag -b können Sie angeben, welche Datei im Bootsektor des Datenträgers gespeichert werden soll.

Die Lösung ist nur, GRUB im Bootsektor zu haben, und GRUB zu verwenden, um das Kernel-Image zu laden, das ich leicht in nicht-floppy Form kompilieren kann.

4

AFAIK eine bootfähige CD ist so ziemlich wie eine bootfähige Diskette. Sie müssen den Boot-Loader (GRUB) in den Bootsektor usw. setzen, das BIOS kümmert sich um die Low-Level-Sachen, bis Sie in den geschützten Modus wechseln.

Sie müssen wahrscheinlich Ihr Bild und dann dd es auf die tatsächliche physische Festplatte machen.

Hier ist das El Torito Bootable CD-Spezifikation: http://www.phoenix.com/NR/rdonlyres/98D3219C-9CC9-4DF5-B496-A286D893E36A/0/specscdrom.pdf

EDIT: Eine alternative Möglichkeit, den Kernel zu testen, würde eine bootbare USB-Stick sein. Auch hier kümmert sich das BIOS um die Low-Level-USB-Sachen, bis Sie A20 einschalten und in den geschützten Modus wechseln.

+0

... oooh, ich habe nie an USB gedacht. Ich werde danach suchen. –

+0

Nicht alle Computer können von einem USB-Gerät booten, aber die meisten (alle?) Sollten modern sein. – senfo

+0

senfo: Richtig, nicht alle Computer können vom USB-Gerät booten, so wie nicht alle Computer von einem CD-ROM-Laufwerk booten können. Aber wenn es kein Diskettenlaufwerk hat, ist es wahrscheinlich neu genug, um dies zu können. –

1

Wenn Sie an Code interessiert sind, dann ist die Moblin Image Creator wahrscheinlich eine gute Anwendung zum Auschecken. Es ist in Python geschrieben und kann verschiedene Arten von bootfähigen Images (CD, USB und NAND) sowohl für Live- als auch für installierbare Konfigurationen von Moblin Linux erstellen.

+0

Jetzt nach http://wiki.meego.com/Image_Creation_For_Beginners verschoben –

Verwandte Themen