ungültige IMG-Datei bei eigenem Betriebssysem

javaDeveloper2011

Erfahrenes Mitglied
Hallo Zusammen,

Ich wollte dieses Tutorial nachmachen, wegen einer Fehlermeldung habe ich 'load' in 'laden' umbenannt, ansonsten alles 1:1 übernommen.
Das kompilieren mit NASM funktioniert, wenn ich aber die wie im Tutorial beschrieben erzeugte IMG-Datei auf CD brennen will (z.B. mit ImgBurn) sagter mir: "Ungültige Datenträgerabbilddatei".
Woran kann das liegen? / Was mache ich falsch?

javaDeveloper2011
 
Hi.
Ich wollte dieses Tutorial nachmachen, wegen einer Fehlermeldung habe ich 'load' in 'laden' umbenannt, ansonsten alles 1:1 übernommen.
Das kompilieren mit NASM funktioniert, wenn ich aber die wie im Tutorial beschrieben erzeugte IMG-Datei auf CD brennen will
Die erzeugte IMG Datei ist kein CD-Image. Du müßtest eine Diskette verwenden.

Du könntest dir auch mit genisoimge ein .iso CD-Image erstellen (mit der IMG Datei als Eltorito boot Image).

Gruß
 
Hi deepthroat,

erstmal Danke!
Aber: Ich habe leider keinen funktionierenden Download von genisoimge gefunden!
Ich denke aber AnyToISO, womit ich gut zurechtkomme, tuts auch.

Nur leider kommt wieder der gleiche Fehler:

17:06:23 - Quelldatei wird geprüft...
17:06:23 - Cannot read SECTOR_SIZE from DMG
17:06:23 - Reading source image, please wait...
17:06:23 - Source image is broken
17:06:23 - Fehler: Dies ist kein gültiges CD/DVD Image
17:06:23 - Vorgang abgeschlossen.
17:06:23 - Hier klicken um die Ziel ISO Datei im Explorer zu öffnen

Kannst du mir filleicht nochmal helfen?

P.S:
- Code jetzt mit Tutorial-Code 100% identisch!
- kompilieren mit nasm klappt ohne Fehler
- Meine Idee: Das Kopieren von der Komandozeile aus erzeugt keine gültigen IMS's!

Gruß javaDeveloper2011
 
Hi.
Aber: Ich habe leider keinen funktionierenden Download von genisoimge gefunden!
Da ist mir ein "a" abhanden gekommen. Das Programm heißt genisoimage. Alternativ kannst du auch mkisofs verwenden, die Programme sind kompatibel.

Siehe z.B. http://www.g-loaded.eu/2007/04/25/how-to-create-a-windows-bootable-cd-with-mkisofs/
Ich denke aber AnyToISO, womit ich gut zurechtkomme, tuts auch.
Nein. Damit kann man ein fertiges CD Image ins ISO Format konvertieren. Du hast aber kein CD Image.
- Meine Idee: Das Kopieren von der Komandozeile aus erzeugt keine gültigen IMS's!
Das ist alles schon richtig so. Es wird ein Boot Image erzeugt - kein CD Image.

Gruß
 
Hi ihr beiden,

vielen Dank nochmal, aber das es genisoimage heißt hab ich schon Verstanden, außerdem sagt Google ja in so einem Fall eh "Meinten Sie: ...", ich versuchs jetzt mal mit mkisofs und achte auf Eltorito-Fähigkeit.

javaDeveloper2011
 
Hi,

Jetzt wird ENDLICH mal ein gültiges ISO erzeugt und auf CD gebrannt!
Wie boote ich jetzt aber?
(Wenn ich beim Start einfach F8 (Run Boot Menu) mache und die CD auswähle kommt trotzdem Windows?

Jemand ne Idee?

javaDeveloper2011
 
Hi.

Ich habe es gerade ausprobiert. Da das Boot Image für das Booten von einer Floppy gedacht ist, muss man beim Booten von CD eine Diskette emulieren lassen. Man darf also die -no-emul-boot Option nicht angeben und das Boot-Image muss genau 1200 kB, 1440 kB oder 2880 kB groß sein.

Du könntest z.B. fsutil verwenden indem du deine Dateigröße ermittelst, die Differenz von (1200*1024) dazu bildest und eine Datei von dieser Größe mit "fsutil file createnew padding.bin <GRÖSSE>" erstellst. Diese Datei kopierst du nun mit den anderen bin Dateien zusammen (copy /b boot.bin+kernel.bin+padding.bin boot.img".

Warum verwendest du denn nicht eine virtuelle Maschine anstatt das ISO Image auf CD zu brennen?

Gruß
 
Hi,

könntest du mir das mit der Virtuellen Maschine erklären (kenne ich natürlich von Java), aber wie würde das hier konkret funktionieren?

javaDeveloper2011
 
Hi

Nein, nicht Java, hier ist was anderes gemeint.

Software wie VMWare, VirtualBox und VirtualPC lassen einen ein Betriebssystem im Betriebssystem installieren, konkret:
Gestartet wird am Anfang ganz normal dein bisheriges Betriebssystem.
Mit einem der drei genannten Programme kannst du dann, während dein Hauptbetriebssystem (Host) normal läuft, in einem Fenster (oder auch Vollbild) ein weiteres Betriebssystem (Gast) starten.

VMWare (etc) spielt dem Gast dabei vor, dass er allein auf einem Computer läuft. Vom Host merkt der nichts.
Welche Hardware der "virtuelle" Computer haben soll, kann man bis zu einem gewissen Grad auch verstellen.
Netzwerkkarte Modell x, Festplatte y...solange die echte Hardware das auch kann, was die virtuelle können soll.

Als Festplatte bekommt der Gast einen Teil der echten, der aus Host-Sicht eine einzelne Datei ist.
Der Inhalt dieser ist dann eben die gesamte Festplatte für den Gast.

Was für dich jetzt wichtig ist: Ins vorgespielte, virtuelle CD-Laufwerk kann man natürlich auch eine CD reinbringen. Entweder eine CD im echten Laufwerk, deren Daten durchgereicht werden, oder ein Iso-Image.
Wenn du jetzt so eine VM zum Testen verwendest, sparst du dir zB das CD-Brennen...bind einfach das Image ein.

Normalerweise verwendet man VMs ja eher, um Betriebssysteme wie Windows/Linux etc zu virtualisieren, aber wenn man selber ein OS schreibt, kanns auch ganz hilfreich sein.

Gruß
 
Zurück