# FAQ Tips > Tipps und Tricks >  Diskettenimages von CD booten

## Masta Pete

Hier möchte ich gerne mal zeigen, wie man ganz einfach mit grub mehrere Disketten/CD/HDD-Images von CD booten kann. Ich werde hier haupsächlich Disketten(images) in den Beispielen verwenden.

So eine Disketten-CD, ist vor allem von Vorteil, wenn man einen Rechner hat, der kein Diskettenlaufwerk hat(die meisten neueren Notebooks) oder einen Disketten einfach zu langsam/zu anfällig auf Fehler sind.

Was dazu benötigt wird:
 Grub memdisk aus dem syslinux Projekt mkisofs mkdosfs dd gzip(optional)

*1) Vorbereitung:*
Als erstes legen wir eine passende Verzeichnisstruktur an: 

```
bootcd/
bootcd/boot
bootcd/boot/grub
```

*2) Dateien kopieren:*
Nun kopieren wir  _/lib/grub/i386-pc/stage2_eltorito_ nach _bootcd/boot/grub/_. memdisk wird nach _bootcd/boot/_ kopiert.*3) Diskettenimages erstellen:*
Grundsätzlich wird 

```
dd if=/dev/fd0 of=imagefile.img
```

 zur erstellung von Images verwendet. Um das Image zu komprimieren, kann man 

```
dd if=/dev/fd0 | gzip | dd of=imagefile.img.gz
```

 verwenden.

Wenn man nun aber z.B. Partition Magic booten will, welches zwei Disketten groß ist, benötigt man das Skript _mkfloppyimg.sh_ von Murali krishnan GANAPATHY und Carsten Grohmann, welches man von http://www.carstengrohmann.de/ runterladen kann.


```
 ./mkfloppyimg.sh -2880 imagefile.img newimagefile.img
```

 erzeugt aus dem vorher erstellten Image imagefile.img ein neues Image mit 2,8MB.

Diese wird nun mit 

```
mount -o loop newimagefile.img /mnt/imagedrive
```

 gemountet und die Dateien von der zweiten Diskette hineinkopiert.

Die Images werden alle direkt in _bootcd_ gespeichert.*4) Anlegen der Grub-config:*
Als erstes werden ein paar Standardeinstellungen vorgenommen(Default Eintrag, uws):
bootcd/boot/grub/menu.lst:


```
timeout 60
default 0
color 1 2 1 1
```

Um nun beispielsweise Maxtors PowerMAX von CD zu booten, benötigt man folgenden Grubeintrag:

```
title MAXTOR PowerMAX
 kernel /boot/memdisk
 initrd /maxpmax.img.gz
```

Für Hitachi's Drive Fitness Test benötigt man zusätzlich den Parameter _raw_ für memdisk.

```
title Hitachi Disk Fitness Test
 kernel /boot/memdisk raw
 initrd /dft32.img
```

Genauso benötigt auch Seagate's Disk Wizard den Parameter _raw_

```
title Seagate Disc Wizard
 kernel /boot/memdisk raw
 initrd /seagatedw.img.gz
```

Und auch Partition Magic 8 kommt ohne den Parameter nicht aus

```
title Partition Magic 8
 kernel /boot/memdisk raw
 initrd /pqm8.img.gz
```

Wenn man eine Windows 98 Startdiskette booten möchte, kommt man ganz ohne zusätzliche Parameter aus

```
title Windows 98 DOS Boot
 kernel /boot/memdisk
 initrd /win98.img.gz
```

Analog dazu, können auch HDD Images(die mit dd, wie im punkt 3 beschrieben, erstellt wurden) gebootet werden. Sehr empfehlenswert ist die Dokumentation von memdisk, wenn man mit nicht standartisierten Diskettengrößen arbeiten möchte.*5) Erstellen des ISO-Images:*

Um das ISO-Image zu erstellen muss man zuerest in das Verzeichnis _bootcd_ wechseln, dann reicht ein

```
mkisofs -R -b ./boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4
 -boot-info-table -o bootcd.iso iso
```

Die ISO Datei kann dann mit jeden Brennprogramm(cdrecord,k3b,usw) gebrannt werden.
Genauso lassen sich auch Disketten über PXE mit pxegrub booten.

lg
pete

----------


## Masta Pete

*6. Booten von CDs von CD mit Grub*
Das booten von CDs von CD gestaltete sich Anfangs schwieriger als gedacht, ist aber eigentlich ganz simpel. memdisk kann leider keine ISO Images booten. Um Linux Boot CDs zu starten, muss man ein bisschen mehr arbeiten. Ich werde hier kurz anhand der Gentoo 2005.0 Minimal Install LiveCD eklären, wie man jede x-Beliebige Linux CD booten kann.

Als erstes benötigt man die CD, entweder als Image oder eine echte CD.
Die CD muss nun gemountet werden. Da ich annheme, dass jeder von euch weis, wie man eine CD mountet, werde ich nur kurz erklären wie man ein Image File mountet.



```
mount -o loop -t iso9660 /image/file.{iso,img} /mnt/loop
```

Dadurch wird die Imagedatei welche entweder eine iso Datei oder eine mit dd erstellte img Datei ist, über ein loop-Device auf _/mnt/loop_ gemountet.

Nun erstellt man im Verzeichnis _./bootcd/_ ein neues Unterverzeichnis für den Inhalt der CD.


```
mkdir ./bootcd/gentoo2005.0/
```

Jetzt wird der Inhalt der CD in das Verzeichnis kopiert.


```
cp -r /mnt/loop/* ./bootcd/gentoo2005.0/
```

Nun muss der Bootloader Eintrag von der CD auf unsere CD übernommen und evtl angepasst werden.

In diesem Fall wird auf der Gentoo LiveCD ISOLINUX verwendet. Die Config sieht so aus:
_cat gentoo2005.0/isolinux/isolinux.cfg_

```
default gentoo
timeout 150
prompt 1
display boot.msg
F1 kernels.msg
F2 help.msg

label gentoo
        kernel gentoo
  append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd.squashfs udev nodevfs  cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0

label gentoo-nofb
        kernel gentoo
        append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd.squashfs udev nodevfs  cdroot


label memtest86
  kernel memtest86
```

Der für uns wichtige Teil, ist dieser:

```
label gentoo
        kernel gentoo
  append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd.squashfs udev nodevfs  cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0
```

In Grub muss der Eintrag dann so lauten:

```
title Gentoo 2005.0 LiveCD
 kernel /gentoo2005.0/isolinux/gentoo root=/dev/ram0 init=/gentoo2005.0/isolinux/linuxrc looptype=squashfs loop=/gentoo2005.0/livecd.squashfs udev nodevfs  cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0
 initrd /gentoo2005.0/isolinux/gentoo.igz
```

Wie man sieht, werden in Grub die Kernelparameter, die in der ISOLINUX Config bei APPEND stehen, direkt an den Kernel angehängt, dafür bekommt die Initrd eine eigene Zeile.

Abschließend muss man nur die CD neu mastern, so wie in 5) beschrieben.
lg
pete

----------


## Masta Pete

*7. Grub auch auf CD einen Splashscreen verpassen*

Dazu muss man nur in der _bootcd/boot/grub/menu.lst_ folgenden Eintrag einfügen:

```
splashimage (cd)/boot/grub/splash.xpm.gz
```

Wichtig ist, dass das _(cd)_ nicht vergessen wird, weil ohne dem zeigt Grub kein Bild an.

Sollte man noch einen _color_ Eintrag in der menu.lst haben, sollte man diesen entwerder mit _#_ auskommentieren oder entfernen.
lg
pete

----------

