| Zeile 125: | Zeile 125: | ||
* Modulares und objektorientiertes Framework für Dateisysteme etc. | * Modulares und objektorientiertes Framework für Dateisysteme etc. | ||
* Cross-Plattform-Installation | * Cross-Plattform-Installation | ||
| + | |||
| + | === Disketten-Image erstellen === | ||
| + | |||
| + | ==== Linux ==== | ||
| + | Du benötigst ein Disketten Image mit GRUB Legacy drauf, wie man das erstellt, wird oben beschrieben. | ||
| + | <pre> | ||
| + | mkdir mnt | ||
| + | sudo mount -oloop floppy.img mnt | ||
| + | cd mnt | ||
| + | </pre> | ||
| + | |||
| + | Jetzt müssen alle Dateien und Ordner außer /boot/grub und seinem Inhalt gelöscht werden. Danach verändert man den Inhalt der Datei menu.lst folgendermaßen: | ||
| + | timeout=0 | ||
| + | |||
| + | title GRUB 2 | ||
| + | kernel /boot/grub2/core.img | ||
| + | boot | ||
| + | Als nächstes legt man unter boot ein Verzeichnis grub2 an und führt dann folgende Befehle aus, um die core.img für GRUB 2 zu erhalten: | ||
| + | <pre> | ||
| + | cd /usr/lib/grub/i386-pc | ||
| + | grub-mkimage -p /boot/grub2 -o /tmp/grubimage/mnt/boot/grub2 *.mod | ||
| + | </pre> | ||
| + | Erklärung: | ||
| + | {| {{prettytable}} | ||
| + | !Option | ||
| + | !Erklärung | ||
| + | |- | ||
| + | | -p /boot/grub2 | ||
| + | |Der Pfad auf dem Image, in welchem GRUB später nach der grub.cfg sucht, wenn dieser nicht angegeben wird /boot/grub | ||
| + | |- | ||
| + | | -o ... | ||
| + | |Die Ausgabedatei, standardmäßig stdout | ||
| + | |- | ||
| + | |*.mod | ||
| + | |Die Module, die eingefügt werden, folgende müssen mindestens vorhanden sein: fat sh multiboot ls ext2 configfile extcmd biosdisk (Zumindest hat mit diesen bei mir alles funktioniert) | ||
| + | |} | ||
| + | |||
| + | Nun erstellt man noch eine grub.cfg mit folgendem Inhalt unter /boot/grub2 auf dem Image ein: | ||
| + | <pre> | ||
| + | set timeout=10 | ||
| + | set default=0 | ||
| + | |||
| + | menuentry "OS-Name" | ||
| + | { | ||
| + | multiboot /pfad/zu/kernel/kernel/datei | ||
| + | boot | ||
| + | } | ||
| + | </pre> | ||
| + | Anschließend kopiert man den Kernel und die dazugehörigen Dateien auf das Image und unmountet es: | ||
| + | <bash>sudo umount mnt</bash> | ||
| + | Das Image ist danach fertig. | ||
| + | |||
| + | ==== Windows ==== | ||
| + | |||
| + | // Todo kann man sich die GRUB2 Binary irgendwo runterladen? | ||
=== CD-Image erstellen === | === CD-Image erstellen === | ||
| Zeile 131: | Zeile 186: | ||
Wenn GRUB2 installiert ist, dann muss folgendes auf der Kommandozeile eingegeben werden: | Wenn GRUB2 installiert ist, dann muss folgendes auf der Kommandozeile eingegeben werden: | ||
| − | < | + | <pre> |
grub-mkrescue --output=GRUB2.iso /boot/grub | grub-mkrescue --output=GRUB2.iso /boot/grub | ||
| − | </ | + | </pre> |
Diese muss dann noch mit dem eigenen Kernel und ggf. Modulen sowie der grub.cfg zusammengeführt werden. | Diese muss dann noch mit dem eigenen Kernel und ggf. Modulen sowie der grub.cfg zusammengeführt werden. | ||
| Zeile 145: | Zeile 200: | ||
Die grub.cfg sollte folgenden inhalt haben: | Die grub.cfg sollte folgenden inhalt haben: | ||
| − | < | + | <pre> |
set timeout=15 | set timeout=15 | ||
set default=0 | set default=0 | ||
| Zeile 154: | Zeile 209: | ||
boot | boot | ||
} | } | ||
| − | </ | + | </pre> |
Wenn das der Fall ist, UltraISO starten, den "Weiterhin testen..."-Button betätigen, | Wenn das der Fall ist, UltraISO starten, den "Weiterhin testen..."-Button betätigen, | ||
auf Datei->Öffnen klicken und dann das GRUB2-Image auswählen und öffnen. | auf Datei->Öffnen klicken und dann das GRUB2-Image auswählen und öffnen. | ||
| Zeile 178: | Zeile 233: | ||
=== Beispielkonfigurationsdatei === | === Beispielkonfigurationsdatei === | ||
| − | < | + | <pre> |
menuentry "OS_Name" | menuentry "OS_Name" | ||
{ | { | ||
| Zeile 185: | Zeile 240: | ||
boot | boot | ||
} | } | ||
| − | </ | + | </pre> |
Diese Beispielkonfigurationsdatei lädt die Datei <tt>kernel</tt> aus dem Wurzelverzeichnis als Kernel in den Speicher, lädt die Datei <tt>modul.mod</tt> als Modul in den Speicher und führt den Kernel danach aus. | Diese Beispielkonfigurationsdatei lädt die Datei <tt>kernel</tt> aus dem Wurzelverzeichnis als Kernel in den Speicher, lädt die Datei <tt>modul.mod</tt> als Modul in den Speicher und führt den Kernel danach aus. | ||