# eigener Kernel - Grub Eintrag?



## GeForce (26. Mai 2004)

Ich habe nun meinen Kernel kompiliert. Was muss ich nun in die menu.lst eintragen damit mein Kernel gebootet wird?
btw: Will am besten nen BootLoader haben der am anfang fragt welcher Kernel gebootet werrden soll...

Distri: RedHat 9.0
Kernel: 2.6.6


----------



## Helmut Klein (27. Mai 2004)

Sieh dir doch einfach mal den bestehenden Eintrag deiner menu.lst an.
Um nun z.B. noch ein weiteres Kernelimage hinzuzufügen kopierst du einfach den vorhandenen Eintrag und änderst die entsprechenden Pfade - das Image sollte im gleichen Verzeichnis liegen wie das bereits konfigurierte.

Beispielsweise meine menu.lst:


```
default 0
timeout 10

title=G E N T O O - Linux 2.6.3-love6
root (hd0,4)
kernel (hd0,4)/boot/bzImage-gentoo root=/dev/hda7

title=D E B I A N - Linux 2.6.6
root (hd0,4)
kernel (hd0,4)/boot/bzImage-debian root=/dev/hda4

title=Win2k
rootnoverify (hd0,0)
makeactive
chainloader +1
```

Der Aufbau ist normalerweise gleich - lediglich die Pfade für die Kernelimages müssen angepasst werden.

Per "default N" wird angegeben welcher Eintrag standardmäßig gebootet werden soll und per "timeout" nach welcher Zeitspanne ohne Useraktion grub den (default-)Kernel automatisch bootet.

Beachte jedoch, dass bei grub die Partitionen nicht wie sonst, sondern in anderem Format angegeben werden, /dev/hda5 ist hier z.B. (hd0,4) - die Partitionen- sowie Festplattennummern starten bei der Nummer 0.

Eine Auswahl der Kernel hast du immer automatisch, wenn du nun mehrere hinzufügst kannst du beim start eben auswählen welchen du booten möchtest.


----------



## GeForce (27. Mai 2004)

isn dann das hier richtig als Eintrag in die menu.lst?

```
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/hda2
#          initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=20
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
	root (hd0,0)
	kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
	initrd /initrd-2.4.20-8.img

title Red Hat Linux (2.6.6 - freq)
	root (hd0,0)
	kernel (hd0,0)/linux-2.6.6/bzImage ro root=LABEL=/
```


----------



## GeForce (27. Mai 2004)

mir wurde vorhin gesagt dass ich make install machen soll, dann wird eine vmlinuz-2.6.6 erstellt in /boot... Okay das habe ich gemacht. Nun hab ich:

```
title Red Hat Linux (2.6.6 - freq)
	root (hd0,0)
	kernel (hd0,0)/vmlinuz-2.6.6 ro root=LABEL=/
```
ists so richtig?


----------



## derGugi (27. Mai 2004)

was ist eine menu.lst Bei mir steht das in /etc/grub.conf.

Du musst ja nur mal ins file schauen, dort stehts ja für den alten Kernel drin. 

title Red Hat Linux (2.6.6)
	root (hd0,0)
	kernel /vmlinuz-2.6.6 ro root=LABEL=/
	initrd /initrd-2.6.6.img

das wärs bereits, natürlich nur, wenn initrd und vmlinuz auch in /boot sind! vmlinuz ist nichts anderes, als die bzImage-Datei, hat einfach einen anderen Namen.  in den Title kannst du schreiben, was du willst


----------



## GeForce (27. Mai 2004)

joa so siehts bei mir nu auch aus *froi*


----------



## GeForce (27. Mai 2004)

Okay wollt nun mit meinem Kernel booten aber da kam das:


> Mounting root filesystem
> pivotroot: pivot_root (/sysroot,/sysroot,/initrd) failed: 2
> unmount /initrd/proc failed: 2
> Freeing unused kernel memory: 244kb freed
> ...


was kann ich falsch gemacht haben?


----------



## derGugi (27. Mai 2004)

Hast du die richtige initrd genommen 

Die Module hast du auch installiert, oder?


----------



## GeForce (27. Mai 2004)

ich hab die initrd-2.6.6.img genommen die nachdem make install in /boot lag...
welche Module?


----------



## derGugi (27. Mai 2004)

Wie hast du den kernel kompiliert?

Der Kernel hat Module, die geladen werden können, damit nicht alles in den Kernel reinkompiliert werden muss...


----------



## GeForce (28. Mai 2004)

ja das weiss ich. Da gabs hunderte Sachen die als "Modul(e)" ausgewählt waren. Und was ist nun damit?


----------



## derGugi (28. Mai 2004)

ob du sie installiert hast! Wenn du sie auswählst, heisst das nicht, dass sie installiert werden. du musst sie zuerst mit make modules kompilieren und dann mit make modules_install installieren.


----------



## GeForce (29. Mai 2004)

*Tutorial:* Howto build a Kernel
meinste etwa das:

```
make dep clean bzImage modules modules_install
```

wen ja, dann hab ich das gemacht!


----------



## Helmut Klein (29. Mai 2004)

Beim 2.6-er Kernel ist es "make all".
Die alte Methode sollte jedoch eigentlich auch gehen.

Hast du denn deinen Kernel auch richtig konfiguriert?


----------



## GeForce (29. Mai 2004)

> _Original geschrieben von Helmut Klein _
> *Beim 2.6-er Kernel ist es "make all".
> Die alte Methode sollte jedoch eigentlich auch gehen.
> 
> Hast du denn deinen Kernel auch richtig konfiguriert? *


ich werd mal make all testen...
normalerweise sollte ich den richtig konfiguriert haben... naja was heisst denn auch schon richtig?


----------



## derGugi (29. Mai 2004)

Ich habe meinen 2.6.5er auch nicht mit make all gemacht und es hat funktioniert...


----------

