Grand Unified Bootloader — Änderungen 8459 → 8460

Zeile 33: Zeile 33:
 
* Kann von einem TFTP-Server booten
 
* Kann von einem TFTP-Server booten
  
−
=== Disketten image herstellen ===
+
=== Diskettenimage erstellen ===
  
 
==== Linux ====
 
==== Linux ====
Zeile 73: Zeile 73:
 
* [http://chitchat.at.infoseek.co.jp/vmware/vfd.html Virtual Floppy Drive]
 
* [http://chitchat.at.infoseek.co.jp/vmware/vfd.html Virtual Floppy Drive]
  
−
Wir brauchen also zunächst einmal einen Ordner. In desen Ordner kommt die Datei ''grldr''(GRUB4DOS Stage2).
+
Wir brauchen also zunächst einmal einen Ordner. In desen Ordner kommt die Datei ''grldr'' (GRUB4DOS Stage2).
−
Aus diesem Ordner machen wir jetzt ein Iamge.
+
Aus diesem Ordner machen wir jetzt ein Image.
 
<pre>
 
<pre>
 
bfi -t=144 -f=floppy.img floppy
 
bfi -t=144 -f=floppy.img floppy
Zeile 80: Zeile 80:
 
<small>Erstellt die Datei floppy.img mit dem Inhalt des Ordners ''floppy''.</small>
 
<small>Erstellt die Datei floppy.img mit dem Inhalt des Ordners ''floppy''.</small>
  
−
Nun muss GRUB nur noch auf dem Image installiert werden und das Image Bootfähig gemacht werden. Das geschieht mit diesem Befehl:
+
Nun muss GRUB nur noch auf dem Image installiert werden und das Image bootfähig gemacht werden. Das geschieht mit folgendem Befehl:
 
<pre>
 
<pre>
 
bootlace.com --fat12 --floppy floppy.img
 
bootlace.com --fat12 --floppy floppy.img
Zeile 86: Zeile 86:
 
<small>Installiert GRUB-stage1 in den Bootsektor des Floppy Images</small>  
 
<small>Installiert GRUB-stage1 in den Bootsektor des Floppy Images</small>  
  
−
Nun kannst du das Image mit VFD mounten und deinen Kernel und eine menu.lst(Die GRUB konfigurationsdatei) auf das Image kopieren.
+
Nun kannst du das Image mit VFD mounten und deinen Kernel und eine menu.lst (Die GRUB Konfigurationsdatei) auf das Image kopieren.
  
 
=== CD-Image herstellen ===
 
=== CD-Image herstellen ===
  
 
==== Linux ====
 
==== Linux ====
−
Es sind folgende Dinge vonnöten:
+
Es sind folgende Tools vonnöten:
−
* stage2_eltorito von GRUB(Sollte bei deinem Linux dabei sein.)
+
* stage2_eltorito von GRUB (Sollte bei deinem Linux dabei sein.)
 
* mkisofs
 
* mkisofs
  
−
Als erstes sollte man die Dateien, die nachher auf der CD landen sollen, in einen Ordner stecken. Dazu gehören auch die von [[GRUB]] benötigten Dateien und zwar ''menu.lst'' und ''stage2_eltorito''. Diese gehören in den Ordner (relativ von der CD aus) ''/boot/grub/''. Man kann sie auch in einen beliebigen anderen Ordner packen, dann muss man allerdings mit den Hexeditor an ''stage2_eltorito''. Wenn die Dateien dann alle fertig sein, baut man das CD-Image. Das geht folgendermaßen:
+
Als Erstes sollte man die Dateien, die nachher auf der CD landen sollen, in einen Ordner kopieren. Dazu gehören auch die von GRUB benötigten Dateien und zwar ''menu.lst'' und ''stage2_eltorito''. Diese gehören in den Ordner (relativ von der CD aus) ''/boot/grub/''. Man kann sie auch in einen beliebigen anderen Ordner packen, dann muss man allerdings mit den Hexeditor an ''stage2_eltorito''. Anschließend erstellt man das CD-Image folgendermaßen:
 
  mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o cdrom.iso cdrom_files/
 
  mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o cdrom.iso cdrom_files/
 
Dies erzeugt ein CD-Image namens ''cdrom.iso'' aus den Dateien des Ordners ''cdrom_files''. ''boot/grub/stage2_eltorito'' ist dabei ein relativer Pfad von der CD aus auf den Bootloader.
 
Dies erzeugt ein CD-Image namens ''cdrom.iso'' aus den Dateien des Ordners ''cdrom_files''. ''boot/grub/stage2_eltorito'' ist dabei ein relativer Pfad von der CD aus auf den Bootloader.
 +
  
 
''Mögliche Probleme'':
 
''Mögliche Probleme'':
−
* Die menu.lst kann nicht geladen werden, d.h. es erscheint nur der GRUB-Prompt. Schuld an diesem Fehler ist ein falscher Pfad in stage2 (der Pfad ist Lowercase, aber ISO-Level-1 speichert nur Uppercase). Abhilfe schafft entweder GRUB gepatcht neu bauen, oder einfach den Pfad im Binary zu ändern:
+
* Die menu.lst kann nicht geladen werden, d.h. es erscheint nur der GRUB-Prompt. Schuld an diesem Fehler ist ein falscher Pfad in stage2 (der Pfad ist Lowercase, aber ISO-Level-1 speichert nur Uppercase). Abhilfe schafft entweder GRUB gepatcht neu bauen, oder einfach den Pfad im Binary zu ändern:<code>sed -i "s/boot\/grub\/menu.lst/BOOT\/GRUB\/MENU.LST/g" stage2_eltorito</code>
−
  sed -i "s/boot\/grub\/menu.lst/BOOT\/GRUB\/MENU.LST/g" stage2_eltorito
+
* Es gibt Systeme die nicht von ElTorito-CDs booten können. Abhilfe schafft hier manchmal, statt ElTorito die Floppyemulation zum Booten zu verwenden. Einfach ein Floppyimage mit allen benötigten Treibern erstellen, welches dann von CD weiterlädt. Das CD-Image hierfür wird dann via<code>mkisofs -b floppy.img -o cdrom.iso cdrom_files/</code><br>erstellt. '''ACHTUNG''': Man braucht wenn man nicht alles im Speicher hat wirklich eigene Treiber, das Floppy-Image ist ab Protected Mode verloren (es werden Interrupts umgeleitet).
−
* Es gibt Systeme die nicht von ElTorito-CDs booten können. Abhilfe schafft hier manchmal, statt ElTorito die Floppyemulation zum Booten zu verwenden. Einfach ein Floppyimage mit allen benötigten Treibern erstellen, welches dann von CD weiterlädt. Das CD-Image hierfür wird dann via  
 
−
  mkisofs -b floppy.img -o cdrom.iso cdrom_files/
 
−
erstellt. ACHTUNG, man braucht wenn man nicht alles im Speicher hat wirklich eigene Treiber, das Floppy-Image ist ab Protected Mode verloren (es werden Interrupts umgeleitet).
 
  
 
=== Beispielkonfigurationsdatei ===
 
=== Beispielkonfigurationsdatei ===
Zeile 129: Zeile 127:
 
* Cross-Plattform-Installation
 
* Cross-Plattform-Installation
  
−
=== CD-Image herstellen ===
+
=== CD-Image erstellen ===
  
 
==== Linux ====
 
==== Linux ====
Zeile 194: Zeile 192:
 
* GRUB legacy
 
* GRUB legacy
 
** [[Teil 4 - Hello_World | OS-Dev für Einsteiger - Teil 4]]: kleiner Beispielkernel mit Multiboot
 
** [[Teil 4 - Hello_World | OS-Dev für Einsteiger - Teil 4]]: kleiner Beispielkernel mit Multiboot
−
** [[GRUB-Image erstellen]]
 
−
** [[GRUB-Image erstellen (Windows)]]
 
−
** [[GRUB auf CD]]
 
 
** [[GRUB Installation auf einem USB-Stick]]
 
** [[GRUB Installation auf einem USB-Stick]]
 
* GRUB 2
 
* GRUB 2