syslog.warten.de

Gentoo Linux Auf STRATO PowerServer-S Installieren

Die folgende Anleitung beschreibt die Installation von Gentoo Linux auf einem STRATO PowerServer-S. Die Installation orientiert sich an der empfohlenen Vorgehensweise aus dem Gentoo Linux x86 Handbuch. Daher werden nur die von der Standardinstallation abweichenden, STRATO-spezifischen Schritte detailliert beschrieben. Für eine Erklärung der Installation im Einzelnen sei auf das Gentoo Linux x86 Handbuch verwiesen.

Vorbereitung

Rettungssystem starten

Bevor Sie mit der Installation loslegen, müssen noch ein paar Dinge erledigt werden. Um die Installation durchführen zu können, müssen Sie das Rettungssystem starten. Die Wahl des Bootmodus treffen Sie im Kundenservicebereich unter Serverkonfiguration > RecoveryManager. Dort wird der Bootmodus “Starten im Rettungssystem” und “Maschine resetten” ausgewählt und mit dem Button “Weiter” bestätigt. Nach ein paar Minuten steht das Rettungssystem für Sie bereit.

Hardware erkennen

Melden Sie sich auf dem Server an. Eine ausführliche Anleitung, wie Sie sich mit SSH (PuTTY) auf dem Server anmelden, finden Sie im FAQ-Bereich von STRATO.

~ $ ssh root@h913533.serverkompetenz.net 

Nachdem Sie sich auf dem Server angemeldet haben, sollten Sie zuerst ein paar Information zur vorhandenen Hardware sammeln. Das ist wichtig, um später die Unterstützung für diese Hardwarekomponenten im Kernel zu aktivieren.

~# cat /proc/cpuinfo | grep “model name”  
model name : Intel(R) Celeron(R) CPU 2.40GHz 



~# lspci  
00:00.0 Host bridge: Intel Corp. 82845 845 (Brookdale) Chipset Host Bridge (rev 04)  
00:01.0 PCI bridge: Intel Corp. 82845 845 (Brookdale) Chipset AGP Bridge (rev 04)  
00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB PCI Bridge (rev 05)  
00:1f.0 ISA bridge: Intel Corp. 82801BA ISA Bridge (LPC) (rev 05)  
00:1f.1 IDE interface: Intel Corp. 82801BA IDE U100 (rev 05)  
00:1f.3 SMBus: Intel Corp. 82801BA/BAM SMBus (rev 05)  
02:06.0 Ethernet controller: Intel Corp. 82557/8/9 \[Ethernet Pro 100\] (rev 08)  
02:07.0 Ethernet controller: Intel Corp. 82557/8/9 \[Ethernet Pro 100\] (rev 08)  
02:08.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) 

Installation

Da das Rettungssystem bereits konfiguriert ist und eine Netzwerkanbindung bereitstellt, können Sie die Installation im Kapitel 4 des Gentoo Linux x86 Handbuchs starten.

Vorbereiten der Festplatte

Sehen Sie sich die Partitionierung der Festplatte an.

~# fdisk -l 
Disk /dev/hda: 61.4 GB, 61492838400 bytes  
255 heads, 63 sectors/track, 7476 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System    
/dev/hda1   *           1           7       56196   83  Linux    
/dev/hda2               8         138     1052257   82  Linux swap / Solaris    
/dev/hda3             139        7476    58942485   83  Linux  

Im Beispiel haben wir uns entscheiden, keine Veränderungen an den Partitionen der Festplatte vorzunehmen.
Im nächsten Schritt formatieren Sie die Partitionen und legen die Dateisysteme an.

~# mke2fs /dev/hda1  
~# mke2fs -j /dev/hda3  
~# mkswap /dev/hda2 

Nachdem die Dateisysteme angelegt sind, mounten Sie die Partitionen.

~# swapon /dev/hda2  
~# mkdir /mnt/gentoo  
~# mount /dev/hda3 /mnt/gentoo  
~# mkdir /mnt/gentoo/boot  
~# mount /dev/hda1 /mnt/gentoo/boot 

Die Festplatte ist nun vorbereitet und Sie können zu Kapitel 5 im Gentoo Linux x86 Handbuch übergehen.

Installation der Gentoo Installationsdateien

Das Gentoo Linux x86 Handbuch sieht vor, die benötigten Dateien mit dem Programm links zu suchen und herunterzuladen. Das STRATO Rettungssystem hat links nicht installiert, weshalb hier auf wget zurückgegriffen wird. Suchen Sie auf den Mirror-Servern nach den benötigten Installationsdateien und laden Sie sie mit wget herunter:

~# cd /mnt/gentoo  
/mnt/gentoo# wget ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo/releases/x86/current/stages/stage3-i686-2006.0.tar.bz2  
/mnt/gentoo# wget ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo/releases/x86/current/stages/stage3-i686-2006.0.tar.bz2.DIGESTS  
/mnt/gentoo# md5sum -c stage3-i686-2006.0.tar.bz2.DIGESTS 

Nun entpacken Sie die Installationsdateien.

/mnt/gentoo# tar xvjpf stage3-i686-2006.0.tar.bz2 

Als Nächstes werden die Dateien für Portage benötigt. Sie gehen hier wie schon bei den Installationsdateien vor.

/mnt/gentoo# wget ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo/snapshots/portage-latest.tar.bz2  
/mnt/gentoo# wget ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo/snapshots/portage-latest.tar.bz2.md5sum  
/mnt/gentoo# md5sum -c portage-latest.tar.bz2.md5sum  
/mnt/gentoo# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr/ 

Führen Sie eine Konfiguration der Compiler-Optionen durch.

/mnt/gentoo# vi /mnt/gentoo/etc/make.conf 

Der Inhalt der Datei /etc/make.conf könnte beispielsweise so aussehen:

USE=”-X -gnome -kde -gtk -qt -doc -ipv6″  
CFLAGS=”-O2 -march=pentium4 -pipe”  
CHOST=”i686-pc-linux-gnu”  
CXXFLAGS=”${CFLAGS}” 

Es befinden sich nun die Installationsdateien auf dem Server und Sie können mit dem nächsten Kapitel des Gentoo Linux x86 Handbuchs fortfahren.

Installation des Gentoo Basissystems

Bevor Sie gleich in die chroot-Umgebung wechseln, kopieren Sie noch die Nameserver-Informationen und mounten Sie die Pseudo-Dateisysteme /proc und /dev.

/mnt/gentoo# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf  
/mnt/gentoo# mount -t proc none /mnt/gentoo/proc  
/mnt/gentoo# mount -o bind /dev /mnt/gentoo/dev 

Bauen Sie die chroot-Umgebung auf.

/mnt/gentoo# chroot /mnt/gentoo /bin/bash  
/ # env-update  
>>> Regenerating /etc/ld.so.cache…  
/ # source /etc/profile  
/ # export PS1=”(chroot) $PS1″ 

Als erstes führen Sie ein Update des Portage-Tree durch.

/ # emerge –sync 

Die Standardinstallation von Gentoo Linux sieht vor nano als Texteditor zu verwenden. Damit weiterhin vi zur Verfügung steht, muß es installiert werden.

/ # emerge vim 

Konfiguration des Kernels

Stellen Sie die Zeitzone für den Server ein.

/ # cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime 

Nun laden Sie die Quelltexte für den Linux-Kernel herunter. Danach beginnen Sie mit der Konfiguration.

/ # USE=”-doc symlink” emerge gentoo-sources  
/ # cd /usr/src/linux  
linux # make menuconfig 

Aktivieren Sie die benötigten Kernelmodule. Beachten Sie hierbei unbedingt auch die Hinweise im Gentoo Linux x86 Handbuch. Jetzt kommen auch die eingangs gesammelten Informationen zur Hardware zum tragen. Aktivieren Sie das Modul für die Netzwerkkarte. Im Beispiel ist das Intel Ethernet Pro 100.

-> Device Drivers  
  -> Network device support  
    -> Ethernet (10 or 100Mbit)  
      -> EISA, VLB, PCI and on board controllers  
        -> Intel(R) PRO/100 support (CONFIG_E100=y) 

Damit Sie sich im Notfall später auch über die Serielle Konsole anmelden können, ist es erforderlich, die dafür notwendigen Kernelmodule zu aktivieren.

-> Device Drivers  
  -> Character devices  
    -> Serial drivers  
      -> 8250/16550 and compatible serial support (CONFIG\_SERIAL\_8250=y)  
        -> Console on 8250/16550 and compatible serial port (CONFIG\_SERIAL\_8250_CONSOLE=y) 

Kompilieren Sie den Kernel und kopieren Sie das Kernelimage ins Verzeichnis /boot. Im Beispiel wurde ein monolithischer Kernel ohne Module konfiguriert.

linux # make  
cp arch/i386/boot/bzImage /boot/kernel-2.6.16-gentoo-r7 

Konfiguration des Systems

Tragen Sie alle für das System notwendigen Partitionen in der Datei /etc/fstab ein.

linux # vi /etc/fstab  
#                                             
/dev/hda1               /boot           ext2            noauto,noatime  1 2  
/dev/hda3               /               ext3            noatime         0 1  
/dev/hda2               none            swap            sw              0 0  
proc                    /proc           proc            defaults        0 0  
shm                     /dev/shm        tmpfs           nodev,nosuid,noexec    0 0 

Konfigurieren Sie Host- und Domainnamen.

linux # vi /etc/conf.d/hostname  
HOSTNAME=”h913533″ 



linux # vi /etc/conf.d/domainname  
DNSDOMAIN=”serverkompetenz.net” 

Aktivieren Sie DHCP für die Netzwerkkarte.

linux # vi /etc/conf.d/net 



config_eth0=( “dhcp” )  
dhcp_eth0=”nodns nontp nonis” 

Sorgen Sie dafür, dass die Netzwerkkarte beim Systemstart aktiviert wird.

linux # rc-update add net.eth0 default 

Informieren Sie das System über die Netzwerkumgebung.

linux # vi /etc/hosts 



127.0.0.1 localhost  
81.169.155.197 h913533.serverkompetenz.net h913533 

Setzen Sie das root-Passwort.

linux # passwd 

Danach konfigurien Sie noch ein paar Umgebungsvariablen.

linux # vi /etc/rc.conf  
linux # vi /etc/conf.d/keymaps 

Konfiguration der RemoteConsole

Damit es dem Benutzer root erlaubt ist, sich über die RemoteConsole einzuloggen, muß in der Datei /etc/securetty “ttyS0″ eingetragen sein. Prüfen Sie, ob der Eintrag vorhandeln ist und fügen Sie ihn gegebenenfalls ein.

linux # vi /etc/securetty 



ttyS0 

Damit der Server Systemausgaben, beispielsweise die Bootmeldungen, an die RemoteConsole sendet, tragen Sie bitte die folgende Zeile in der Datei /etc/inittab ein.

linux # vi /etc/inittab 



s0:12345:respawn:/sbin/agetty 57600 /dev/ttyS0 vt102 

Die Konfiguration des System ist somit abschlossen und Sie können im nächsten Kapitel des Gentoo Linux x86 Handbuchs mit der Installation der System-Tools weitermachen.

Installation der benötigten Systemtools

Installieren und aktivieren Sie syslog-ng, vixie-cron und slocate.

linux # emerge syslog-ng  
linux # rc-update add syslog-ng default  
linux # emerge vixie-cron  
linux # rc-update add vixie-cron default  
linux # emerge slocate 

Damit beim Systemstart auch ein DHCP-Client verfügbar ist, installieren Sie noch dhcpcd.

linux # emerge dhcpcd 

Konfiguration des Bootloaders

Installalieren und konfigurieren Sie den Bootloader.

linux # emerge grub  
linux # cp /boot/grub/grub.conf.sample /boot/grub/grub.conf  
linux # vi /boot/grub/grub.conf 

Der Inhalt der Datei /boot/grub/grub.conf könnte beispielsweise wie folgt aussehen.

timeout 5  
default 0  
serial –unit=0 –speed=57600  
terminal serial 
# For booting GNU/Linux  
title GNU/Linux  
root (hd0,0)  
kernel /kernel-2.6.16-gentoo-r7 root=/dev/hda3 console=tty0 console=ttyS0,57600  

Die Angabe der Parameter console sorgt dafür, dass die Bootmeldungen auch auf der Seriellen Konsole ausgegeben werden.
Installieren Sie grub im Master Boot Record (MBR) der Festplatte Ihres Servers.

linux # grep -v rootfs /proc/mounts > /etc/mtab  
linux # grub-install /dev/hda 

Nun aktivieren Sie noch den SSH-Daemon, damit er nach einem Neustart automatisch geladen wird. Dann können Sie die chroot-Umgebung verlassen und die Partitionen unmounten.

linux # rc-update add sshd default  
linux # exit  
/mnt/gentoo# cd  
~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo 

Die Installation ist abgeschlossen und der Server kann neu gestartet werden. Damit nach dem Neustart nicht wieder das Rettungssystem geladen wird, müssen Sie im Kundenservicebereich unter Serverkonfiguration > RecoveryManager noch den Bootmodus “Normal Boot” auswählen und mit dem Button “Weiter” bestätigen. Die Option “Maschine resetten” aktivieren Sie bitte nicht. Sicherheitshalber führen Sie den Neustart manuell durch.

~# reboot 

Jetzt steht Ihnen Gentoo Linux auf dem STRATO PowerServer zur Verfügung. Sie können sich mit SSH anmelden und weitere Dienste installieren.

~$ nmap h913533.serverkompetenz.net 
Starting Nmap 4.03 ( http://www.insecure.org/nmap/ ) at 2006-05-29 08:16 CEST  
Interesting ports on h913533.serverkompetenz.net (81.169.155.197):  
(The 1672 ports scanned but not shown below are in state: closed)  
PORT STATE SERVICE  
22/tcp open ssh

Nmap finished: 1 IP address (1 host up) scanned in 0.281 seconds 

RemoteConsole

Die STRATO RemoteConsole ist ein SSH-Server, der direkt mit Ihrem Server verbunden ist. Sie greifen per SSH-Programm auf die RemoteConsole zu und diese leitet Ihre Eingaben als Tastatureingabe über den seriellen Zugang an Ihren Server weiter.
Sie können bereits in dem Moment auf den Server zugreifen, wenn Linux gerade bootet und somit die Bootmeldungen mitlesen. Außerdem haben Sie mit der RemoteConsole auch dann noch Zugriff auf Ihren Server, wenn durch Arbeiten an einer Firewall oder an den Netzwerkdiensten keine Verbindung über die Netzwerkkarte möglich ist.
Eine ausführliche Anleitung, wie Sie mit der seriellen RemoteConsole eine Verbindung zu Ihrem Server herstellen, finden Sie im FAQ-Bereich von STRATO.

Wenn der Server nicht startet

Sollte der Server nach einem Neustart nicht verfügbar sein, empfielt es sich, den Bootvorgang mit Hilfe der Seriellen Konsole zu verfolgen. In der Regel läßt sich hierbei bereits die Ursache erkennen. Um Änderungen am System vornehmen zu können, starten Sie den Server mit dem Rettungssystem und bauen wie schon bei der Installation eine chroot-Umgebung auf.

~# swapon /dev/hda2  
~# mkdir /mnt/gentoo  
~# mount /dev/hda3 /mnt/gentoo  
~# mount /dev/hda1 /mnt/gentoo/boot  
~# mount -t proc none /mnt/gentoo/proc  
~# mount -o bind /dev /mnt/gentoo/dev  
~# chroot /mnt/gentoo /bin/bash  
/ # env-update  
/ # source /etc/profile  
/ # export PS1=”(chroot) $PS1″ 

Nun können Sie das System wie gewohnt administrieren und Änderungen vornehmen. Haben Sie die Ursache für die Nichterreichbarkeit des Servers gefunden und behoben, beenden Sie die chroot-Umgebung und starten den Server neu.

/ # exit  
~# cd  
~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo  
~# reboot

FastCGI Has Failed to Remain Running for 30 Seconds

Nach der Installation von FastCGI und dem ersten Test mit einem CGI-Skript sind folgende Fehlermeldungen im error_log vom Apache zu finden:

[error] [client 127.0.0.1] FastCGI: incomplete headers (0 bytes) received from server "/var/www/localhost/cgi-bin/hello.fcgi"

und mehrfach

[warn] FastCGI: (dynamic) server "/var/www/localhost/cgi-bin/hello.fcgi" has failed to remain running for 30 seconds given 3 attempts, its restart interval has been backed off to 600 seconds

Mögliche Ursachen sind der vorangegangene Versuch ein gewöhnliches CGI-Skript mit FastCGI auszuführen und die Tatsache, dass das Perl-Modul FCGI nicht (in einem @INC-Pfad) installiert ist.