Autor Thema: Grub auf Diskette?  (Gelesen 27683 mal)

sp

  • Gast
Gespeichert
« am: 16. February 2005, 12:50 »
Hallo

ich habe mir überlegt, dass es vielleicht besser ist Grub (oder ähnliches) zu benutzen, anstatt einen eigenen Bootloader zu erstellen. Erstmal jedenfalls.
Mein "OS" liegt im Moment auf einer Diskette, daher wollte ich fragen ob jemand Erfahrung damit hat, mit Grub von Diskette zu booten? Bzw. wie man Grub auf die Diskette bekommt.

sp

PS: Ich nutze Windows.

Kevin_

  • Beiträge: 52
    • Profil anzeigen
    • http://fishing-online.lite-os.de
Gespeichert
« Antwort #1 am: 16. February 2005, 21:13 »
Mit Windows eigendlich kaum möglich weil du ja für GRUB ext2 braucht soweit ich weiß... Aber mit Hurd, Linux etc kein Problem! Für weiteres kann man die GRUB doku zurate ziehen: http://www.gnu.org/software/grub

fasmat

  • Gast
Gespeichert
« Antwort #2 am: 16. February 2005, 21:43 »
Nee... also soviel ich weiß unterstützt GRUB mehrere Dateisysteme, darunter auch FAT12...

Kevin_

  • Beiträge: 52
    • Profil anzeigen
    • http://fishing-online.lite-os.de
Gespeichert
« Antwort #3 am: 16. February 2005, 21:46 »
Aber soweit ich weiß nur um nen Kernel davon zu laden....

sp

  • Gast
Gespeichert
« Antwort #4 am: 16. February 2005, 22:26 »
Ich hab hier ein SuSE 9.1 als VM, könnte ich damit Grub auf einer Diskette installieren? Also die VM kann auf das Floppy-Laufwerk zugreifen.

Kevin_

  • Beiträge: 52
    • Profil anzeigen
    • http://fishing-online.lite-os.de
Gespeichert
« Antwort #5 am: 17. February 2005, 07:23 »
ja das müsste gehen....

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 26. February 2005, 10:14 »
Is zwar schon etwas älter, aber GRUB auf Diskette geht, dafür gibts im downloadbereich auf osdever.net sogar nen diskettenimage (läd kernel.bin)
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 26. February 2005, 12:13 »
Wo is da ein Image? Da is nur der Source... (ich habs runtergeladen)

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 26. February 2005, 13:06 »
ich hatte es nich runtergeladen, und drüber stand Floppy Images... Naja, errare humanum est
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 26. February 2005, 13:18 »
Halt, stop ich hab mich geirrt....
Ich hab des falsche runtergelagen...

sp

  • Gast
Gespeichert
« Antwort #10 am: 26. February 2005, 13:32 »
Ich hab die Bin's runterladen und sie dann auf der Diskette installiert. Mittlerweile ist mein Kernel auch Grub-Kompatibel, ist ne feine Sache.

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 26. February 2005, 16:01 »
Wo gibts die bin's?
Und wegen, dem Multiboot header. Kannst du mir auch mal sagen, wie du dass genau gemachst hast (ich mein mit dem Header)?

sp

  • Gast
Gespeichert
« Antwort #12 am: 26. February 2005, 17:06 »
Zitat
Wo gibts die bin's?
Google :), auf irgend einem gnu server.

Zitat
Und wegen, dem Multiboot header. Kannst du mir auch mal sagen, wie du dass genau gemachst hast (ich mein mit demm
Header)?
Nein, das geht nicht in C, man muss eine ASM Datei vor den Kernel linken.

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 26. February 2005, 17:19 »
Aber auf http://lowlevel.brainsware.org/index.php?pagename=tutorials&showtut_id=2#Programmierung%20eines%20GRUB-kompatiblen%20Kernels wird es mit C gemacht....
Weißt du wo es weitere Infos über den Multiboot-Header gibt, oder kannst du mal bitte deinen posten?

sp

  • Gast
Gespeichert
« Antwort #14 am: 26. February 2005, 21:13 »
Ohh, dann nehme ich meine voreilige Behauptung natürlich zurück.

Ich denke mal, das hier ist der Trick:const unsigned  MultibootHeader[12] __attribute__
      ((section(".text"))) = { /* Header Information */ };


Aber ich bleibe, wie in der Grub-Doku beschrieben, bei der vorgeschobenen ASM Datei, die dann auch die main() aufruft.
So kann ich mir auch alles mögliche (Multiboot-Struct, EAX, etc...) als Parameter übergeben.

Wichtig ist nur, dass du sobald wie möglich deinen eigenen Stack initialisierst.

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 27. February 2005, 09:59 »
In C gehts irgendwie doch net....
Naja, dann nehm ich doch ASM. Auf http://www.gnu.org/software/grub/ find ich das mit der ASM Datei aber net. Kannst du mir mal bitte den link sagen?

sp

  • Gast
Gespeichert
« Antwort #16 am: 27. February 2005, 13:50 »
In der Grub Dokumentation gibt es ein Beispiel OS, leider find ich es gerade nicht mehr.
Aber das hier sollte dir auch weiterhelfen:
http://www.osdever.net/tutorials/grub.php?the_id=5

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 27. February 2005, 14:04 »
Ja, da is es aber mit dem elf-format....
Kannst du deine asm datei mal posten?
Bitte....

sp

  • Gast
Gespeichert
« Antwort #18 am: 27. February 2005, 15:32 »
Ich benutze auch ELF, sorry.

Würde ich dir aber auch empfehlen,
macht die Sache viel einfacher.

JG

  • Beiträge: 189
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 27. February 2005, 16:22 »
ok, also muss ich meine 2 Dateien
multiboot.asm

 MULTIBOOT_PAGE_ALIGN   equ 1<<0
    MULTIBOOT_MEMORY_INFO  equ 1<<1

    MULTIBOOT_HEADER_MAGIC equ 0x1BADB002
    MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO
    CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)

    ; The Multiboot header (in NASM syntax)
        align 4
        dd MULTIBOOT_HEADER_MAGIC
        dd MULTIBOOT_HEADER_FLAGS
        dd CHECKSUM

und kernel.c

xxx

kompilieren und dann zu kernel.elf zusammenfügen, oder muss in die "multiboot.asm" was anderes?
Ich hoffe ich nerv mit meinen Fragen net...

 

Einloggen