eigener Kernel - Grub Eintrag?

GeForce

Grünschnabel
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
 
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:

Code:
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.
 
isn dann das hier richtig als Eintrag in die menu.lst?
Code:
# 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=/
 
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:
Code:
title Red Hat Linux (2.6.6 - freq)
	root (hd0,0)
	kernel (hd0,0)/vmlinuz-2.6.6 ro root=LABEL=/
ists so richtig?
 
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
 
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
Kernel panic: No init found
Try passing init= option to kernel
was kann ich falsch gemacht haben?
 
Zuletzt bearbeitet:
Wie hast du den kernel kompiliert?

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