• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

boot cd erstellen mit mkisofs

wolfmair

Newbie
Hallo,

ich versuche mittels mkisofs eine boot cd zu erstellen. Diese cd soll ein paar zusaetzliche boot optionen beinhalten. (z. B. autoyast einstellungen.)

Dazu habe ich mir die mini boot cd vom iso image gemounted und in ein verzeichnis (/tmp/bootcd) kopiert.
Dann meine Anpassungen in isolinux.cfg gemacht und nun moechte ich das ganze wieder auf eine boot faehige cd brennen.

Leider bekomme ich immer die gleiche meldung, dass das boot image nicht gefunden werden kann.
mkisofs hat ja nicht gerade wenig optionen. Ich bin mir mittlerweile ueberhaupt nicht sicher welche optionen ich verwenden soll. Die option -b gibt an wo das 'image' zu finden ist. Ich bin mir aber nicht sicher ob die datei isolinux.bin DAS image ist. Es gibt da auch noch die option -G welche mir einleuchtender ist. Wenn ich diese anstatt -b verwende bekomme ich aber einen 'Memory fault' als Fehlermeldung.

prinz:/tmp/bootcd # mkisofs -o /tmp/bootcd.iso -b /tmp/bootcd/boot/i386/loader/isolinux.bin -no-emul-boot /tmp/bootcd
INFO: UTF-8 character encoding detected by locale settings.
Assuming UTF-8 encoded filenames on source filesystem,
use -input-charset to override.
call to search_tree_file with an absolute path, stripping
initial path separator. Hope this was intended...
mkisofs: Uh oh, I cant find the boot image '/tmp/bootcd/boot/i386/loader/isolinux.bin' !
prinz:/tmp/bootcd # ls -l /tmp/bootcd/boot/i386/loader/isolinux.bin
-r--r--r-- 1 root root 12896 Oct 9 13:18 /tmp/bootcd/boot/i386/loader/isolinux.bin
prinz:/tmp/bootcd #
 
OP
W

wolfmair

Newbie
Hallo,
nun kann ich meine Frage selber beantworten. Vieleicht kanns ja mal noch jemand brauchen.

Es ist darauf zu achten, dass nach der option -b ein relativer pfad folgt. Alle anderen Pfadangaben koennen absolut sein.
In meinem Beispiel habe ich dann folgenden Befehl verwendet um das image zu erzeugen:

prinz:/tmp/bootcd # mkisofs -R -o /tmp/bootcd.iso -b boot/i386/loader/isolinux.bin -no-emul-boot -boot-info-table /tmp/bootcd
INFO: UTF-8 character encoding detected by locale settings.
Assuming UTF-8 encoded filenames on source filesystem,
use -input-charset to override.
Size of boot image is 28 sectors -> No emulation
29.20% done, estimate finish Tue Jan 30 13:41:59 2007
58.28% done, estimate finish Tue Jan 30 13:41:59 2007
87.39% done, estimate finish Tue Jan 30 13:41:59 2007
Total translation table size: 2048
Total rockridge attributes bytes: 1365
Total directory bytes: 6144
Path table size(bytes): 48
Max brk space used 0
17167 extents written (33 MB)
prinz:/tmp/bootcd #

Desweiteren, wenn man keinen Wert auf das GUI und den Startscreen legt, kann man die Files ziemlich zusammenstreichen. So dass die Boot CD nur noch aus folgenden Files besteht:

prinz:/tmp/bootcd # find .
.
./boot
./boot/i386
./boot/i386/loader
./boot/i386/loader/initrd
./boot/i386/loader/isolinux.bin
./boot/i386/loader/isolinux.cfg
./boot/i386/loader/linux
./boot/i386/loader/message
./boot/i386/rescue
prinz:/tmp/bootcd #

Wolfgang
 

Taesi

Member
Meinst Du mit -c die Boot-Catalog-Option?
Hab' ich bis jetzt stets weg gelassen, ging trotzdem immer, wird m.E. automatisch erstellt!
 
A

Anonymous

Gast
Vielleicht hilft dir das

Erstellen von Boot-CDs
Wenn beim Booten Ihres Systems unter Verwendung eines Bootmanagers Probleme
auftreten oder wenn der Bootmanager auf dem MBR Ihrer Festplatte oder einer Diskette
nicht installiert werden kann, ist es auch möglich, eine bootfähige CD mit all den für
Linux erforderlichen Startdateien zu erstellen. Hierfür muss ein CD-Brenner in Ihrem
System installiert sein.
Für die Erstellung eines bootfähigen CD-ROM mit GRUB ist lediglich eine spezielle
Form von stage2 namens stage2_eltorito erforderlich sowie, optional, eine
benutzerdefinierte Datei menu.lst. Die klassischen Dateien stage1 und stage2
sind nicht erforderlich.
Prozedur 14.7 Erstellen von Boot-CDs
1 Erstellen Sie ein Verzeichnis, in dem das ISO-Image erstellt werden soll, beispielsweise:
cd /tmp
mkdir iso
2 Erstellen Sie ein Unterverzeichnis für GRUB:
mkdir -p iso/boot/grub
3 Kopieren Sie den Kernel, die Dateien stage2_eltorito, initrd, menu
.lst und /boot/message nach iso/boot/:
cp /usr/lib/grub/stage2_eltorito iso/boot/
cp /boot/vmlinuz iso/boot/
cp /boot/initrd iso/boot/
cp /boot/message iso/boot/
cp /boot/grub/menu.lst iso/boot/grub
4 Passen Sie die Pfadeinträge in iso/boot/menu.lst so an, dass sie auf ein
CD-ROM-Laufwerk verweisen. Ersetzen Sie hierfür in den Pfadnamen den
Gerätenamen der Festplatten, die im Format (hd*) aufgeführt sind, mit dem
Gerätenamen des CD-ROM-Laufwerks, das mit (cd) angegeben wird:
gfxmenu (cd)/boot/message
timeout 8
default 0
title Linux
kernel (cd)/boot/vmlinuz root=/dev/hda5 vga=794 resume=/dev/hda1 \
splash=verbose showopts
initrd (cd)/boot/initrd
Verwenden Sie splash=silent anstelle von splash=verbose, um zu
vermeiden, dass beim Bootvorgang Bootmeldungen angezeigt werden.
5 Erstellen Sie das ISO-Image mit dem folgenden Befehl:
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \
-boot-load-size 4 -boot-info-table -o grub.iso iso
6 Schreiben Sie die so erstellte Datei namens grub.iso unter Verwendung Ihres
bevorzugten Dienstprogramms auf eine CD. Brennen Sie das ISO-Image nicht
als Datendatei, sondern verwenden Sie in Ihrem Brennprogramm die Option
„CD-Image brennen“.
_________________
 
A

Anonymous

Gast
interessiert mich

was ändert sich?

ich hab das so angewandt und es hat funktioniert
 

Taesi

Member
Nun, ich hatte Suse 9.X, da gab's kein stage2_eltorito mehr, nun die 10er Version, da gibt's die auch nicht. Zwischenzeitlich die Dateien von GRUB4DOS probiert, da ist sie standardmäßig auch nicht dabei gewesen.
Kann man sicherlich selbst kompilieren, ist aber keine Notwendigkeit, da iso09660_stage1_5 in Deinem Beispiel genau so funktionieren würde, es ändert sich praktisch nur die Datei, die als Boot-Image fungiert.

Ich weiß nicht, wie lange dein Test her ist, früher gab's die iso09660_stage1_5 nicht, und man musste stage2_eltorito nehmen.
 
Oben