PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie in Grub einbinden?



Meerschwein
19.02.04, 11:50
Ich hab jetzt den Kernel nach /usr/src/linux-2.6.3 entpackt. Danach habe ich ihn erfolgreich kompiliert. Wie binde ich ihn jetzt in grub ein?

peschmae
19.02.04, 11:56
der kompilierte Kernel liegt in /usr/src/linux-2.6.3/boot/arch/i386/bzImage - den kopierst du jetzt dorthin wo du die Kernel normalerweise hast (entweder /vmlinuz-2.6 oder /boot/vmlinuz-2.6)

Den Grub-Eintrag in der /boot/grub/menu.lst (die Datei kann auch anders heissen) kannst du dir ja einfach kopieren (vom anderen Kernel den du wohl schon installiert hast)

MfG Peschmä

ChieFi
19.02.04, 12:13
Kopiere dir den kompilierten Kernel ( im Linux-Sourcen-Ordner meist als arch/i386/boot/bzImage je nach Architektur ), sowie die aktuelle System.map nach /boot

cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.3
cp System.map /boot/System.map-2.6.3

Nun musst du deine aktuelle Grubkonfiguration erweitern um den neuen Kernel. Die Konfiguration liegt meist im Ordner /boot/grub und hier also grub.conf oder menu.lst (wobei menu.lst meist ein Symlink auf grub.conf ist)
Die Datei erweiterst du also - wie schon erwähnt wurde, kopierst du dir am besten den bisherigen Abschnitt und ersetzt den Kernel-Namen durch vmlinuz-2.6.3
Solltest du Gebrauch von initrd machen, also nicht alle zum booten lebenswichtigen Dinge direkt den den Kernel kompiliert haben, sondern als Module, so musst du aus den lebenswichtigen Modulen noch ein Image generieren, welches dann beim Kernelstart ausgelesen werden kann, so dass die entsprechenden Module und Funktionen dann bereitstehen (denn wie will man z.B. das Modul für das ext-Dateisystem von der Platte laden, wenn man nich rankommt...die Katze, die sich in den Schwanz beißt :)). Da musst du dann aber mal woanders nachlesen.. Es gibt da ein Programm namens mkinitrd, welches dieses Image erzeugt...die Grub-Konfiguration muss dann entpsrechend erweitert werden...

Jope..nachdem du das getan hast, kannst du die neue Grubkonfiguration schreiben lassen, z.B. in den Bootsektor.

Dazu /sbin/grub ausführen und in der Gruc-Konsole z.B. den Bootmanager so installieren:

install (hd0,x)/boot/grub/stage1 d (hd0) (hd0,x)/boot/grub/stage2 p (hd0,x)/boot/grub/grub.conf

wobei x deine /-Partition darstellt -1. Hast du Linux z.B. auf /dev/hda6, so müsste das so aussehen:

install (hd0,5)/boot/grub/stage1 d (hd0) (hd0,5)/boot/grub/stage2 p (hd0,5)/boot/grub/grub.conf

Meerschwein
19.02.04, 12:54
ich habs getestet ohne initrd file gehts nicht. ich wollte grad mkinitrd installieren. anscheinend ist das aber schon installiert. aber wie rufe ich das programm auf ? mit mkinitrd gehts nicht.

ChieFi
19.02.04, 13:56
Ich vermute mal, dass das an root gebunden ist. Was macht demnach ein /sbin/mkinitrd ?

Im Grunde übergibst du dem Tool dann zwei Parameter - den Kernel und die Kernel-Version

/sbin/mkinitrd /boot/vmlinuz-2.6.3 2.6.3

wobei ich mir da nicht so sicher bin da ich das seit Ewigkeiten nicht mehr verwendet habe ;) Naja...in dem Ordner, in dem du dich gerade befindest wird dann dieses initrd-Image erzeugt und du müsstest die Datei dann optimalerweise nach /boot bringen und entsprechend bennenen ( initrd-2.6.3.img ). Die Grub-Konfiguration musst du dann ebenfalls noch um eine Zeile erweitern, so dass der gesamte Abschnitt ähnlich wie dieser ausschaun sollte:


title Mein Linux (2.6.3)
root (hd0,X-1)
kernel /boot/vmlinuz-2.6.3 ro root=/dev/hdaX
initrd /boot/initrd-2.6.3.img

Zum X hatte ich ja bereits was geschrieben ;) Ja und abschließend musst du halt die Grub-Konfiguration nochmal schreiben lassen - siehe Beitrag oben

Meerschwein
19.02.04, 14:27
also ich hab jetzt aus sbin ./mkinitrd initrd-2.6.3.img 2.6.3 ausgeführt und die datei nach boot verschoben. den eintrag hinzugefügt...
dann wollte ich den kernel starten, er macht auch ein bisschen was nur irgendwann kommt dann: kernelpanic no initrd found. was hab ich falsch gemacht?

ChieFi
19.02.04, 15:45
Vermutlich hast du vergessen, initrd-Support fest in den Kernel einzukompilieren. Überprüfe also nochmal deine Kerel-Konfiguration. Den Punkt findest du in der Kernel-Konfiguration unter

Device Drivers -> Block Devices

Sollte hier stehen als "Initial RAM Disk Support (initrd)" oder so ähnlich..

Meerschwein
19.02.04, 18:21
Ist eingebaut gewesen. Ich such mal nach mkinitdr Anleitungen. Vielleicht hab ich ja was falsch gemacht? Warum muss man eigentlich die Config neu installieren?

randy
20.03.04, 15:29
welche config?

mfg
randy²