Inhaltsverzeichnis

Kernel bauen OVH Images und Software Raid 1


Autor: sledge0303
E-Mail: sven.richter@nixhelp.de
Stand: 03.03.2009 Howto aktualisiert von F4RR3LL


In diesem Howto wird erklärt, wie man sich trotz Nutzung eines Servers mit OS aus OVH Images zzgl. RAID 0/1 einen Kernel selbst bauen kann.
Man kann den Kernel als

Partitionierung und Raid überprüfen

Die Erfahrung hat gelehrt, OVH Images nicht immer zu trauen. Auch während meiner Testinstallation wurde dies leider bestätigt.

Als Beispiel füge ich mal die von OVH System eingerichtete Partitionierungstabellen auf:

| fdisk -l /dev/sda
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         637     5116671   fd  Linux raid autodetect
/dev/sda2             638         833     1574370   fd  Linux raid autodetect
/dev/sda3             834       91201   725880960    5  Extended
/dev/sda5             834        1470     5116671   fd  Linux raid autodetect
/dev/sda6            1471        2107     5116671   fd  Linux raid autodetect
/dev/sda7            2108       91200   715639491   fd  Linux raid autodetect
| fdisk -l /dev/sdb
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         637     5116671   fd  Linux raid autodetect
/dev/sdb2             638         833     1574370   fd  Linux raid autodetect
/dev/sdb3             834       91201   725880960    5  Extended
/dev/sdb5             834        1470     5116671   fd  Linux raid autodetect
/dev/sdb6            1471        2107     5116671   fd  Linux raid autodetect
/dev/sdb7            2108       91200   715639491   fd  Linux raid autodetect

Hier erwartet den unerfahrenen Benutzer die erste böse Falle. Auf der 2. HDD wurde nicht die Bootflag gesetzt. In folge dessen würde trotz neuem Kernel und richtiger Einstellungen in der /etc/lilo.conf der grottige OVH-Kernel

cfdisk /dev/sdb

In dem Menu erstellst du sdb1 als Bootdevice und speicherst anschließend ab. Das ganze muss danach so aussehen:

| richtige /dev/sda Einstellung
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1         637     5116671   fd  Linux raid autodetect
/dev/sdb2             638         833     1574370   fd  Linux raid autodetect
/dev/sdb3             834       91201   725880960    5  Extended
/dev/sdb5             834        1470     5116671   fd  Linux raid autodetect
/dev/sdb6            1471        2107     5116671   fd  Linux raid autodetect
/dev/sdb7            2108       91200   715639491   fd  Linux raid autodetect

Erst jetzt können wir mit der Installation des Kernels fortfahren!

1. Installation der Abhängigkeiten

apt-get install -y kernel-package libncurses5-dev wget patch make automake

Anschließend wechseln wir nach /usr/src

cd /usr/src

und laden uns die Kernelsourcen. Wir wählen den Kernel 2.6.28.7

wget http://www.de.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.7.tar.gz

Danach entpacken wir die Source und wechseln in das Verzeichnis rein

tar zxf linux-2.6.28.7.tar.gz
cd linux-2.6.28.7

2. Config

Benutze die momentane config deines Kernels oder erstelle dir eine neue unter Zuhilfenahme mit den Ausgaben von lspci und lsmod eine neue
Alternativ kannst Du auch die originale Konfiguration von OVH nehmen:

wget ftp://ftp.ovh.net/made-in-ovh/bzImage/2.6-config-xxxx-std-ipv4-32
mv 2.6-config-xxxx-std-ipv4-32 .config

Dann gehst du in die .config rein, suchst diese Zeile

CONFIG_LOCALVERSION="-xxxx-std-ipv4-32"

und änderst diese um in

CONFIG_LOCALVERSION=""

Für 64 Bit Systeme ist diese Config anzuwenden ftp://ftp.ovh.net/made-in-ovh/bzImage/2.6-config-xxxx-std-ipv4-64
Wir haben auch fertige Configs incl Modulsupport hier http://download.nixhelp.de/OvH-Kernel/configs/

3. Kernel kompilieren

make menuconfig

jetzt schaust du nach ob deine komplette Hardware oder gewünschten Funktionen aktiviert wurden und speicherst anschließend ab indem du das Menu verläßt.

Danach führst du diese beiden Kommandos aus:

make &&
make modules_install

Ist der Kompilierungsvorgang fehlerfrei durchgelaufen:

make install

Du wirst gefragt, ob /sbin/lilo ausgeführt werden soll. Das bejahst du.
Zur Kontrolle schaust du in das /boot Verzeichnis und siehst nach ob dein Kernel dort zu finden ist:

ls /boot

config-2.6.28.7 System.map-2.6.28.7  vmlinuz-2.6.28.7

Wenn ja, dann ist der Großteil erstmal geschafft :-D

Die Kompilierung ist abgeschlossen und nun muss der Bootloader lilo angepasst werden.

nano /etc/lilo.conf

Der Bootloader muss so aussehen, solltest du eine andere Rootdevice nutzen, passe diese dementsprechend an.

| /etc/lilo.conf für RAID
prompt
timeout=50
default=linux
boot=/dev/md1
raid-extra-boot=mbr-only
map=/boot/System.map-2.6.28.7
install=/boot/boot.b
lba32
append=""
serial=0,9600n8
 
image=/boot/vmlinuz-2.6.28.7
        label=linux
        read-only
        root=/dev/md1

Abschließend noch einmal

/sbin/lilo

Jetzt solltest du deine Arbeit abgeschlossen haben und dem Reboot des Servers steht nichts mehr im weg.

zurück zum Seitenindex