Seit September habe ich nun einen eigenen Root-Server bei 1&1. Obwohl es auf der Produktübersicht nicht dargestellt wird, bietet 1&1 doch verschiedene vorinstallierte Server-Betriebssysteme (Images) zur Auswahl:
- SuSE 10.1 (mit oder ohne Plesk) – 32 oder 64 bit
- SuSE 9.3 (nur mit Plesk) – 32 oder 64 bit
- Fedora Core 6 – 32 oder 64 bit
- Ubuntu 6.06 – 32 oder 64 bit
- Debian 3.1 stable/sarge – 32 oder 64 bit
Nach langem Ausprobieren habe ich mich letztendlich für eine 64 “bittige” Ubuntu-Installation entschieden. (Mit ist im Übrigen aufgefallen, dass die 32 bit-Images auf einem 64 bit-System nicht funktionieren und hoffe, dass das Problem bei 1&1 bereits bekannt ist.) Das Ubuntu-Minimal-Image ist wirklich ideal, wenn man den Server “per Hand”, also ohne Plesk-Gedöns o.ä., konfigurieren möchte.
Allerdings gibt es dabei einen kleinen Wermutstropfen: die Jungs und Mädels von 1&1 haben zwar einerseits eine halbwegs aktuelle Kernel-Version (bei mir 2.6.16.53) in das Image integriert, nur leider haben sie erstens den Kernel mit dem veralteten GCC 3.x übersetzt und zweitens die Kernel-Sourcen nicht mitgeliefert. Das ist sehr, sehr unangenehm genau dann wenn man zusätzliche Kernel-Module übersetzen und einbinden möchte. (Das ist zum Beispiel dann der Fall, wenn ein VMware-Server installiert wird.)
Ist aber kein Problem, man kompiliert und installiert den vorhandenen Kernel, mit der identischen Konfiguration, einfach neu! Zuerst ist es allerdings sinnvoll, die Paketliste (apt-get update) und die Pakete an sich (apt-get upgrade) zu aktualisieren. Anschließend sollte noch das benötigte Handwerkszeug (apt-get install) installiert werden.
apt-get update apt-get upgrade apt-get install build-essential kernel-package
Okay, dann ist es auch schon an der Zeit, die Kernel-Quellen von kernel.org herunterzuladen (wget) und im Verzeichnis /usr/src zu entpacken (bunzip2). Optional sollte noch der symbolischen Link (ln) “linux”, der immer auf die Quellen der gerade installierte Kernel-Version zeigt, in diesem Verzeichnis angelegt werden.
cd /usr/src wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.53.tar.bz2 bunzip2 < linux-2.6.16.53.tar.bz2 | tar xvf - ln -s linux-2.6.16.53 linux
Und nun wird es ernst: In das Quellen-Verzeichnis (linux) wird zunächst die bestehende Konfigurationsdatei hineinkopiert (cp), d.h. die alte Konfigurationsdatei ist auch gleichzeitig die neue, da ja der Kernel mit der identischen Version lediglich neu kompiliert wird. Anschließend wird der Übersetzungsprozess ausgeführt (make). (Mit dem Parameter --revision kann ein eineindeutiger Revisionsname festgelegt werden.)
cd linux cp /boot/config-2.6.16.53-070731a .config make oldconfig make-kpkg --initrd --revision v1 binary
Das wäre geschaft! Jetzt muss nur noch der Debian Paket Manager (dpkg) angeworfen werden, um das neu erstellte Kernel-Image zu installieren. Noch kurz dem Boot-Manager LILO (lilo) Bescheid geben, dass es einen neuen Kernel gibt und abschließend mit reboot das komplette System neustarten.
cd .. dpkg -i kernel-image-2.6.16.53_v1_amd64.deb lilo reboot
Sollte der Neustart nicht funktioniert haben, kann man sich mit der Remote-Console genau anschauen, wo es hängt. Alternativ vielleicht das ganze System mittels Server-Initialisierung neuinstallieren und einen neuen Versuch wagen!



0 Responses to “Ubuntu-Kernel auf 1&1 Root-Server L64 neu kompilieren”