Zwei Kernel parallel installieren: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
Zeile 3: Zeile 3:
 
Um mal mit einem kernel-of-the-day oder einem selbsterstellten Kernel rumzuspielen, sollte man sich einen kleinen Rettungsanker basteln.
 
Um mal mit einem kernel-of-the-day oder einem selbsterstellten Kernel rumzuspielen, sollte man sich einen kleinen Rettungsanker basteln.
  
Wie das geht steht hier:
+
Um mal mit einem kernel-of-the-day oder einem selbsterstellten Kernel rumzuspielen, sollte man sich einen kleinen Rettungsanker basteln.
http://www.linux-club.de/viewtopic.php?p=115193
+
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:
 +
rpm -e --justdb kernel-default
 +
 
 +
Die Dateien und Module des Kernels bleiben auf der Festplatte, nur der Datenbankeintrag verschwindet!
 +
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:
 +
 
 +
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
 +
 
 +
 
 +
Wichtig ist die Kontrolle das vmlinuz auf den neuesten installierten kernel zeigt. Gleiches gilt für initrd.
 +
 
 +
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:
 +
....
 +
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
 +
...
 +
 
 +
 
 +
Nun kann man jederzeit einen neuen (experimentellen) Kernel installieren und hat den SuSE-default Kernel in der Hinterhand.
 +
 
 +
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
  
 
eingefügt: --[[Benutzer:Yehudi|Yehudi]] 23:30, 28. Aug 2006 (CEST)
 
eingefügt: --[[Benutzer:Yehudi|Yehudi]] 23:30, 28. Aug 2006 (CEST)
  
 
[[Category:Kernel]]
 
[[Category:Kernel]]

Version vom 29. August 2006, 05:36 Uhr

Autor: oc2pus

Um mal mit einem kernel-of-the-day oder einem selbsterstellten Kernel rumzuspielen, sollte man sich einen kleinen Rettungsanker basteln.

Um mal mit einem kernel-of-the-day oder einem selbsterstellten Kernel rumzuspielen, sollte man sich einen kleinen Rettungsanker basteln. 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:

rpm -e --justdb kernel-default

Die Dateien und Module des Kernels bleiben auf der Festplatte, nur der Datenbankeintrag verschwindet! 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:

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


Wichtig ist die Kontrolle das vmlinuz auf den neuesten installierten kernel zeigt. Gleiches gilt für initrd.

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: ....

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

...


Nun kann man jederzeit einen neuen (experimentellen) Kernel installieren und hat den SuSE-default Kernel in der Hinterhand.

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

eingefügt: --Yehudi 23:30, 28. Aug 2006 (CEST)