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