Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Boot-CD selber *programmieren*

stefanw1 / 7 Antworten / Baumansicht Nickles

Hallo,
ich möchte ein kleines Bootprogramm schreiben und auf einen Datenträger verbannen. Wie bekomme ich nun aber das Bootprogramm genau auf die Stelle, von der das BIOS beginnt, die CD zu starten?

Ich habe mir überlegt, dass man vielleicht ein ISO-Image selbst erstellen könnte, das man dann einfach brennt. Nur wie ist der ISO-Standard aufgebaut?? Wo kann ich meinen Binärcode dort einfügen?

Das kleine Bootprogramm würde ich in Assembler programmieren und eine uralt-DOS-COM-Datei erstellen. Dann beginnt der Binärcode mit genau dem ersten Zeichen, und ich könnte ihn direkt ins ISO-file hineinkopieren. - Geht das?

Ich habe das vorher schoneinmal mit Disketten gemacht, was auch funktioniert. Aber leider sind sie vom Aussterben bedroht :P - deswegen bitte kein Umwege mit Disketten beschreiben!

Vorab schonmal vielen Dank!
mfg Stefan

bei Antwort benachrichtigen
Borlander stefanw1 „Boot-CD selber *programmieren*“
Optionen
Ich habe das vorher schoneinmal mit Disketten gemacht, was auch funktioniert. Aber leider sind sie vom Aussterben bedroht :P - deswegen bitte kein Umwege mit Disketten beschreiben!
Dann sollte aber trotzdem doch ichts dagegen sprechen die Diskette als BootImage für eine Bootfähige CD zu verwenden? Das sollte mit allen etwas besseren CD-Brenn Tools funktionieren, zumindest mit den vollen (also nicht OEM, wie z.B. bei Nero) Versionen...

Gruß
Borlander
bei Antwort benachrichtigen
digixp stefanw1 „Boot-CD selber *programmieren*“
Optionen

Schau dir meine BootCD RSDVD in meiner Signatur. Vielleicht gefällt dir das. Schau es dir mal an;)

bei Antwort benachrichtigen
stefanw1 Nachtrag zu: „Boot-CD selber *programmieren*“
Optionen

>Dann sollte aber trotzdem doch ichts dagegen sprechen die Diskette als BootImage für eine Bootfähige CD zu verwenden?

Doch, eigentlich schon. Manche PC's haben schon heute kein Diskettenlaufwerk mehr, und ich möchte auch auf solch einem PC in der Lage sein, eine Boot-CD zu erstellen. Alternative zur Diskette wäre noch USB-Stick, aber da kenn' ich mich noch weniger aus als mit Boot-CD's. Dass man von Disketten den Bootsektor für die CD machen kann, weiß ich - danke trotzdem.


@digixp:
Auf der Homepage wird "WinFuture xp-Iso-Builder" aufgelistet. So wie ich das verstanden habe, kann man damit aber CD-Files nur mit VORHANDENER Windows-Installations-CD machen, oder?
Der Name klingt dagegen sehr vielversprechend - ein Proggy zum ISO-File erstellen wäre genau das Richtige. Nur dass man auch selbst den Bootbereich manipulieren können müsste. Kennt Du [oder jemand anders] eins, das für meine Zwecke passen könnte?

Wenn ich möglicherweise etwas falsch verstanden habe - Könntest Du mir vielleicht die Schritte erklären, die man machen muss? - Also angefangen damit, dass ich ein Stück Binärcode habe bis zu dem Punkt, an dem das ISO-File fertig ist (mit dem Stück Binärcode an der Boot-Startadresse). ISO-File brennen müsste ich dann wieder hinkriegen...

thx @all
Stefan

bei Antwort benachrichtigen
Borlander stefanw1 „ Dann sollte aber trotzdem doch ichts dagegen sprechen die Diskette als...“
Optionen
Manche PC's haben schon heute kein Diskettenlaufwerk mehr, und ich möchte auch auf solch einem PC in der Lage sein, eine Boot-CD zu erstellen.
Dann würde man die Image-Datei einer bootfähigen Diskette verwenden.

Abgesehen davon: Wer um 5€ zu sparen auf ein Floppy-LW verzichtet hat wirklich am falschen Ende gespart...
bei Antwort benachrichtigen
stefanw1 Borlander „ Dann würde man die Image-Datei einer bootfähigen Diskette verwenden....“
Optionen

>Dann würde man die Image-Datei einer bootfähigen Diskette verwenden.
Aber *genau* an dieser Stelle soll doch mein Code eingefügt werden. Das würde bedeuten, dass ich trotzdem das ISO-File manipulieren muss. Und ich weiß nicht, ob ich dort ohne weiteres (Checksummen? Steuerinformationen? ISO-Segment-Angaben?) mit einem HEX-Editor einfach ein paar Zeichen mit meinem Code überschreiben kann! (Antworten dazu sind für mich auch hilfreich)

>Wer um 5€ zu sparen[...]
Hast Du Notebooks mit eingerechnet?

bei Antwort benachrichtigen
stefanw1 Nachtrag zu: „Boot-CD selber *programmieren*“
Optionen

Hallo zusammen,
nach Durchlesen aller Posts möchte ich nochmal gegen aneinander-Vorbeireden sichergehen: Mir geht es im Grunde genommen darum, einen eigenen, d.h. in z.B. Assembler selbstgeschriebenen, Bootloader auf eine CD zu bekommen, so dass er auch startet. Zwar ist "Bootloader" nicht gaaannz das passende Wort (will ja nicht das Rad neu erfinden hehe:-)), aber es kommt dem am nächsten.

Wichtig ist einzig und allein, wie man Binärcode auf das allererste CD-Byte bekommt, das das BIOS beim Start von der CD ausführt.

Vielen Dank für Eure Mühe
mfg Stefan

bei Antwort benachrichtigen
stefanw1 Nachtrag zu: „Hallo zusammen, nach Durchlesen aller Posts möchte ich nochmal gegen...“
Optionen

Hallo,
ich bin's mal wieder :D. Habe einige Wissens-Fortschritte gemacht, an die Ihr anknüpfen könnt, falls Ihr das gleiche wie ich gesucht habt:

Zuerst habe ich ein .pdf über die ISO 9660 gefunden: "Introduction to ISO 9660" von Disc Manufacturing, Inc. aus dem Jahr 1993. Darin standen schonmal einige Hintergründe zu dieser CD-Norm. Besonders wertvoll war für mich eine Tabelle, die den Inhalt der ersten 2048 Bytes einer CD beschreibt. Nice-to-know, aber noch nicht genau das, was etwas über den Bootvorgang aussagt.

Deswegen habe ich weitergeforscht und bin in einem CD-Image auf den Begriff "EL TORITO SPECIFICATION" gestoßen. Nach einigem Suchen nach einer Beschreibung dieses Standards wurd ich auch da fündig: El Torito Bootable CD-ROM Format Specification, Version 1.0; January 25, 1995 von Phoenix und IBM. Und da stehen nun die wirklich interessanten Dinge drin! Bin zwar erst auf Seite 10, weiß aber schon einige Adressen:
auf Adresse 8800h der letzten Session beginnt der Boot-Record, der erstmal einige Informationen enthält. Außerdem wird etwas davon gesagt, dass 7C0h das "traditionelle" Startsegment für den Bootvorgang ist.

Ich werde es demnächst also an Adresse 07C0h mit meinem Bootcode versuchen.

Außerdem benutze ich momentan IsoBuster, einen HEX-Editor und WinOnCD. Denke das sollte klappen...

Für Anregungen bin ich natürlich weiterhin dankbar,
Viele Grüße,
Stefan

bei Antwort benachrichtigen