Top 5 Viren

Kernel Installation PDF Drucken
Geschrieben von Heiko Heinrich   
Mittwoch, 11. Juli 2007

Einen neuen Kernel installieren

Als erstes sollte man Überprüfen mit welcher Version man bereits arbeitet und wenn ein wechsel nicht wirklich nötig ist oder reinen Testzwecken dient sollte man den Kernel nicht tauschen. Die Version kann man mit uname -a überprüfen.

Nachdem man sich entschieden hat einen neuen Kernel zu installieren / ausprobieren, sollte man die alte Konfiguration zur Sicherheit speichern. Dies kann man folgendermassen tun:

zcat /proc/config.gz > ./root/config.old
Wenn dies nicht der Fall sein sollte ist die .config meistens in /usr/src/linux-version/.config und diese muss dann kopiert werden.

So nun sind die Konfigurationen gesichert und die Entscheidung ist gefallen, also muss der neue Kernel heruntergeladen werden.
Im Beispiel wird alles mit der Distribution Debian gezeigt. Die Kernel Quellen sind auf www.kernel.org oder einer anderen zuverlässigen Quelle.
Nachdem man das Kernel-Paket gesaugt hat, muss man es entpacken. Am besten alles als root. Entweder mit bzip2: tar xjvf linux-2.6.22.tar.bz2 oder mit gzip: tar xzvf linux-2.6.22.tar.gz

Dabei entsteht ein neues Verzeichnis im aktuellen Verzeichnis, linux-2.6.22. Das Kopiert man in /usr/src/ also cp linux-2.6.22 /usr/src/ Nun in das /usr/src Verzeichnis wechseln. Viele Programme brauchen die Kernelquellen und erwarten diese in /usr/src/linux. Also macht man sinnvollerweise einen symbolischen link auf /usr/src/linux-2.6.22

root@debian:/usr/src/# ln -s linux-2.6.22 linux

Jetzt, bevor man weiter macht wird erst der alte Kernel gesichert und zwar mit:

cp -a /boot/vmlinuz /boot/vmlinuz.old
cp -a /boot/initrd.img /boot/initrd.old

Danach kommen die neuen Eintraege in die /etc/lilo.conf oder /boot/grub/menu.lst

LILO

label = linux
image = /boot/vmlinuz
initrd = /boot/initrd.img

label = OLD
image = /boot/vmlinuz.old
initrd = /boot/initrd.old

Danach muss die LILO mit lilo -v aufgerufen werden.

GRUB

title GNU/Linux.OLD
root (hd0,0)
kernel /boot/vmlinuz.old root=/dev/hda1
initrd /boot/initrd.old

title GNU/Linux
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hda1
initrd /boot/initrd.img

Der Bootloader GRUB benötigt keinen Extra Aufruf.

Nun kann man in das Verzeichnis /usr/src/linux wechseln und die Konfiguration starten.

Entweder man startet mit make menuconfig oder make xconfig (grafisch / dazu muss XServer laufen). Eine andere Methode ist make oldconfig oder make config, dies sind aber absolute Notfälle wenn die ersten beiden nicht funktionieren.

Wenn die Konfiguration gestartet ist gibt es zu fast jedem Punkt kleine Hinweise, wie If you unsure say yes. Also immer jeden Punkt lesen auch wenn es mühsam ist.

Die Konfiguration sollte man auf jedenfall speichern. Danach kommen folgende Befehle:

root@debian:/usr/src/linux/# make clean
root@debian:/usr/src/linux/# make -s dep bzlilo modules modules_install (diesen nur wenn man LILO benutzt)
-s = gibt nur Warnungen und Fehler wieder
bzlilo = richtet den neuen Kernel gleich unter /vmlinuz ein und kopiert den alten nach /vmlinuz.old
modules = kompiliert die Module
modules_install = installiert sie in /lib/modules/2.6.22/

Bei GRUB als Bootmanager: Hier sieht der Befehl etwas anders aus:
Zu allererst bleibt man im Verzeichnis /usr/src/linux. Danach kommen folgende Befehle:

root@debian:/usr/src/linux/# make dep clean bzImage
root@debian:/usr/src/linux/# cp /boot/vmlinuz /boot/vmlinuz.old
root@debian:/usr/src/linux/# cp arch/i386/boot/bzImage /boot/vmlinuz
root@debian:/usr/src/linux/# make modules_install
root@debian:/usr/src/linux/# make clean

Fertig! Bei Bedarf übrigens LILO oder GRUB noch anpassen, wobei ich eher GRUB empfehlen würde.

Hinweis Speziell für Debian:
Wir laden uns die Kernelquellen herunter und entpacken sie unter /usr/src (zum entpacken ist bzip2 notwendig, dieses kann mit aptitude install bzip2 installiert werden)
Danach wechseln wir nun in das neue Verzeichnis mit cd /usr/src/linux2.6.22 anschließend machen wir ein make menuconfig bzw. make oldconfig.
Damit haben wir den Kernel konfiguriert. Wenn menuconfig nicht geht, sollte man libncurses5-dev installieren.
Anschließend installieren wir uns das Paket kernel-package. Das kompiliert den Kernel und macht ein Debian-Paket draus.
Das geht folgendermassen: make-kpkg kernel_image --revision=dri.0
Der Kernel hat noch eine Revisions-Number bekommen, damit man ihn nachdem wir ihn kompiliert haben wieder entfernen können.
Anschließend mit dpkg -i 2622linux.deb installieren und bevor wir rebooten in grub /boot/menu.lst einen Booteintrag für den neuen Kernel hinzufügen.
Zum Schluss noch ein paar Hinweise:
Es müssen folgende Pakete installiert sein gcc, make und make_kpkg.

 
< zurück   weiter >