D.h. man hat mehrere Kernel zur Auswahl und kann im Falle eines Falles einen funktionsfähigen Kernel zum booten verwenden.
Dazu wird zunächst der aktuelle Kernel aus der RPM-Datenbank entfernt.
Code: Alles auswählen
rpm -e --justdb kernel-default
Dies ist erforderlich, da sonst bei einem Kernel Update genau dieses Dateien gelöscht würden und der neue Kernel installiert würde.
Nehmen wir an unser aktueller Kernel sei der kernel-2.6.5-7.104-default.
Da wir jetzt keinen RPM-Datenbank Eintrag mehr besitzen, können wir den neuen Kernel installieren. Entweder mit apt oder YaST oder via Commandline-Befehl rpm -i kernel-default-2.6.x-y-default.i586.rpm.
Durch die Installation wird ein link "vmlinuz" und "initrd" im Verzeichnis /boot angelegt. D.h der zuletzt installierte Kernel wird immer unter dem Namen "vmlinuz" angesprochen.
Unser /boot Verzeichnis sollt nun so aussehen:
Code: Alles auswählen
ls -al /boot
total 11246
drwxr-xr-x 4 root root 2048 Dec 10 07:03 .
drwxr-xr-x 22 root root 512 Dec 10 08:06 ..
-rw-r--r-- 1 root root 115852 Jul 28 20:57 Kerntypes-2.6.5-7.104-default
-rw-r--r-- 1 root root 741449 Jul 28 20:50 System.map-2.6.5-7.104-default
-rw-r--r-- 1 root root 740002 Dec 9 19:45 System.map-2.6.8-20041209164842-default
lrwxrwxrwx 1 root root 1 Jun 7 2004 boot -> .
-rw-r--r-- 1 root root 55554 Jul 28 20:57 config-2.6.5-7.104-default
-rw-r--r-- 1 root root 57559 Dec 9 20:01 config-2.6.8-20041209164842-default
drwxr-xr-x 2 root root 1024 Oct 14 08:23 grub
lrwxrwxrwx 1 root root 35 Dec 10 07:03 initrd -> initrd-2.6.8-20041209164842-default
-rw-r--r-- 1 root root 1383501 Aug 4 07:14 initrd-2.6.5-7.104-default
-rw-r--r-- 1 root root 1385622 Dec 10 07:03 initrd-2.6.8-20041209164842-default
drwx------ 2 root root 12288 Mar 11 2003 lost+found
-rw-r--r-- 1 root root 84480 Jul 20 19:46 message
-rw-r--r-- 1 root root 83147 Jul 2 2003 message.SuSEconfig.2003.07.09-14.54
-rw-r--r-- 1 root root 79374 Jul 28 20:58 symvers-2.6.5-7.104-i386-default.gz
-rw-r--r-- 1 root root 79146 Dec 9 20:03 symvers-2.6.8-20041209164842-i386-default.gz
-rw-r--r-- 1 root root 1738635 Jul 28 20:57 vmlinux-2.6.5-7.104-default.gz
-rw-r--r-- 1 root root 1856926 Dec 9 20:01 vmlinux-2.6.8-20041209164842-default.gz
lrwxrwxrwx 1 root root 36 Dec 10 07:00 vmlinuz -> vmlinuz-2.6.8-20041209164842-default
-rw-r--r-- 1 root root 1469887 Jul 28 20:50 vmlinuz-2.6.5-7.104-default
-rw-r--r-- 1 root root 1556730 Dec 9 19:45 vmlinuz-2.6.8-20041209164842-default
Dieser Eintrag für diesen Kernel (vmlinuz) ist in der Regel bereits in der /boot/grub/menu.lst enthalten.
Damit unser "alter" Kernel aber ebenfalls im grub-Menu ausgewählt werden kann, ist eine kleine Änderung an der /boot/grub/menu.lst erforderlich. Es muss ein zusätzlicher Eintrag für den alten Kernel erstellt werden.
Für unser Beispiel sollten die Einträge in der /boot/grub/menu.lst so aussehen:
Code: Alles auswählen
....
title linux-kernel-of-the-day
kernel (hd0,0)/vmlinuz root=/dev/sda7 vga=788
initrd (hd0,0)/initrd
title linux-SuSE-default
kernel (hd0,0)/vmlinuz-2.6.5-7.104-default root=/dev/sda7 vga=788
initrd (hd0,0)/initrd-2.6.5-7.104-default
...
Und wer seinen Kernel selber kompilieren will, der sollte sich das hervorragende HOWTO von gimpel anschauen:
http://www.linux-club.de/viewtopic.php?t=10810