Image mit Grub2 erstellen

Aus Lowlevel
Wechseln zu:Navigation, Suche

Vorbemerkungen

Man benötigt zum Folgen der Anleitung nur einen Rechner, auf dem GRUB 2 installiert ist.

Erste Schritte

Im Folgenden gehe ich davon aus, dass ihr Linux verwendet, das Arbeitsverzeichnis ist /tmp/grubimage/.


Durchführung

Zuerst lädt man sich ein Image mit GRUB Legacy herunter, z. B. hier: http://download.tyndur.org/releases/0.2/. Ich habe tyndur-0.2.1-gothmog-floppy.img.bz2 genommen. Dieses Image entpackt man nun ins Arbeitsverzeichnis und mountet es anschließend: <bash>mkdir mnt sudo mount -oloop 0.2.1-gothmog-floppy.img mnt cd mnt</bash> 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: <bash>cd /usr/lib/grub/i386-pc grub-mkimage -p /boot/grub2 -o /tmp/grubimage/mnt/boot/grub2 *.mod</bash> Erklärung:

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:

set timeout=10
set default=0

menuentry "OS-Name"
{
    multiboot /pfad/zu/kernel/kernel/datei
    boot    
}

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.

Test

Testen kann man das Image z. B. mit QEMU: <bash>qemu -fda 0.2.1-gothmog-floppy.img</bash>