Grand Unified Bootloader — Änderungen 8475 → 8476

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:
−
<code>
+
<pre>
 
grub-mkrescue --output=GRUB2.iso /boot/grub
 
grub-mkrescue --output=GRUB2.iso /boot/grub
−
</code>
+
</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:
−
<code>
+
<pre>
 
set timeout=15
 
set timeout=15
 
set default=0
 
set default=0
Zeile 154: Zeile 209:
 
   boot                         
 
   boot                         
 
}
 
}
−
</code>
+
</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 ===
−
<code>
+
<pre>
 
menuentry "OS_Name"
 
menuentry "OS_Name"
 
{
 
{
Zeile 185: Zeile 240:
 
   boot
 
   boot
 
}
 
}
−
</code>
+
</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.