1und1 XXL Server mit Debian Etch per debootstrap installieren

debian.pngdebian1.pngEin Kunde hat einen Server bei 1und1 gemietet, welchen ich in Zukunft administrieren werde. Als Standard-Betriebssystem war OpenSuse mit Plesk installiert. Da ich allerdings ein Verfechter von Debian bin, habe ich mich nach Absprache mit dem Kunden dazu entschlossen, den Server von Grund auf neu mit Debian Etch zu installieren.

Meiner Meinung nach bietet Debian die beste Stabilität und die am besten getesteten Pakete (natürlich aus dem stable Zweig) aller Linux Distributionen. Nun möchte ich aber nicht zuviel reden, sondern hier die Anleitung für die Installation von Debian Etch mit einem 64Bit Kernel für AMD auf einem 1und1 XXL Server mit Hardware Raid (Achtung, ich gebe keine Gewährleistung für die Vollständigkeit oder Richtigkeit des Artikels. Für Schäden und Datenverluste übernehme ich keine Haftung!!!):

1 ) In das vorinstallierte System von 1und1 einloggen und die Kernel Konfigurationsdatei sichern. Diese liegt im Verzeichnis /boot. Bei dem von mir verwalteten Server hatte die Datei den Namen config-2.6.20.21-071108a. Am besten die Datei per FTP herunterladen oder auf einem Remote-Server zwischenspeichern.

2 ) Weitere Dateien mit Konfigurationen wie z.B. /etc/resolv.conf und sichern.

3 ) Nun über die 1und1 Weboberfläche den Reboot ins das Recovery System booten. Dabei als Rescue-Betriebssystem das Etch / 64 Bit auswählen und den Vorgang bestätigen. Bitte nicht vergessen, das Passwort zu notieren!

4 ) Verbinden zum Rescue System per ssh. Dann die Partitionen auf /dev/sda löschen (dies sollte unser Raidverbund sein).

5 ) Neue Partitionen mit fdisk anlegen. Ich habe folgende Partitionierung angelegt (Daten aus /etc/fstab):
proc /proc proc defaults
/dev/sda6 / ext3 defaults 0 1
/dev/sda5 /boot ext3 noatime,nodev,nosuid 0 2
/dev/sda7 /tmp ext3 noatime,nodev,nosuid 0 2
/dev/sda8 /usr ext3 noatime,nodev 0 2
/dev/sda9 /opt ext3 defaults 0 2
/dev/sda10 swap swap sw
/dev/sda11 /var ext3 defaults 0 2

Dies ist natürlich nur ein Vorschlag zur Partitioniereng und kann nach Bedarf geändert werden. Ich habe alle Partitionen in eine EXTENDED als logische Partitionen angelegt.

6 ) Die Partitionen formatieren:
user@server# for i in 5 6 7 8 9 11; do mke2fs -j /dev/sda$i; done
user@server# mkswap /dev/sda10
user@server# sync:sync:sync;sync;

7 ) Die nun angelegten und formatierten Partitionen mounten sowie entsprechende Verzeichnisse der Partitionen anlegen und mounten, damit wir mittels debootstrap unser Basissystem nachher dort herein installieren können:
user@server# mount /dev/sda6 /mnt && mkdir /mnt/boot /mnt/tmp /mnt/usr /mnt/var /mnt/opt && mount /dev/sda5 /mnt/boot && mount /dev/sda7 /mnt/tmp && mount /dev/sda8 /mnt/usr && mount /dev/sda9 /mnt/opt && mount /dev/sda11 /mnt/var

8 ) Wir besorgen uns nun deboostrap mit Hilfe von wget, entpacken dieses und passen die debootstrap Datei entsprechend an. Wenn dies geschehen ist, können wir debootstrap starten und das Basissystem wird installiert:
user@server# wget http://ftp.de.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.6_all.deb
user@server# ar xv debootstrap_1.0.6_all.deb
user@server# tar xvfz data.tar.gz
user@server# cd usr/sbin
user@server# vim debootstrap

Folgende Zeilen entsprechend anpassen:
DEBOOTSTRAP_DIR=/usr/sbin/debootstrap
if [ -x "/usr/sbin/gettext" ]; then

Und weiter gehts mit:
user@server# debootstrap --arch amd64 etch /mnt ftp://ftp.de.debian.org/debian/

9 ) In der neu installierten Umgebung Dateien wie /mnt/etc/hosts oder /mnt/etc/fstab (siehe weiter oben meinen fstab Auszug) entsprechend anpassen. Wichtig ist die Netzwerkeinstellung welche wie folgt angelegt werden muss, da 1und1 über ein bestimmtes Gateway routet (Achtung, kann von Ihrem Gateway evtl. abweichen). Weiterhin sollten wir unsere alte Kernel Konfigurationsdatei noch nach /mnt/usr/src kopieren:
user@server# echo auto lo eth0 > /etc/network/interfaces
user@server# echo iface lo inet loopback >> /etc/network/interfaces
user@server# echo iface eth0 inet dhcp >> /etc/network/interfaces
user@server# echo up ip route add 10.255.255.1/32 dev eth0 >> /etc/network/interfaces
user@server# echo up ip route add default via 10.255.255.1 >> /etc/network/interfaces

10 ) Wir wechseln nun mit dem chroot Befehl in das neu Installierte System um dort noch einige Anpassungen vorzunehmen sowie einen neuen Kernel zu kompilieren:

user@server# mount -t proc none /mnt/proc && mount -t devpts none /mnt/dev/pts
user@server# LANG=C chroot /mnt /bin/bash

user@chroot# cd /dev
user@chroot# ./MAKEDEV generic
user@chroot# vim /etc/apt/sources.list
########################################################
deb http://ftp.de.debian.org/debian etch main contrib non-free
deb-src http://ftp.de.debian.org/debian etch main contrib non-free

deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free
########################################################

user@chroot# aptitude update
user@chroot# aptitude install make gcc kernel-package fakeroot libncurses5-dev libc6 debianutils
user@chroot# cd /usr/src
user@chroot# wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.gz
user@chroot# tar xvfz linux-2.6.21.tar.gz
user@chroot# ln -sf linux-2.6.21 linux
user@chroot# cd linux
user@chroot# mv config-2.6.20.21-071108a .config
user@chroot# make-kpkg --config=menuconfig --revision=Custom.1.00
user@chroot# make-kpkg --rootcmd=fakeroot kernel_image
user@chroot# cd ..
user@chroot# dpkg -i linux-image-2.6.21_Custom.1.00_amd64.deb

11 ) Bevor wir nun Lilo, unseren Bootloader, mit aptitude installieren, müssen wir unsere Lilo Konfigurationsdatei unter /etc/lilo.conf anlegen und die Datei /etc/inittab entsprechend anpassen (damit wir mit der seriellen Konsole verfolgen können, was beim booten passiert sofern etwas schiefgeht):
user@chroot# vim /etc/lilo.conf
########################################################
boot=/dev/sda
root=/dev/sda6

vga=normal
timeout=60
prompt
lba32

read-only

default=lxser

serial=0,57600n8
append="console=ttyS0,57600 console=tty0 panic=30"

image=/vmlinuz
label=lxser
append="console=tty0 console=ttyS0,57600 panic=30"

image=/vmlinuz.old
optional
label=lxserold
append="console=tty0 console=ttyS0,57600 panic=30"

image=/boot/memtest86+.bin
optional
label = memtest86+
########################################################

user@chroot# vim /etc/inittab (und dann suchen nach T0:23 und entsprechend anpassen)

########################################################
T0:23:respawn:/sbin/getty -L ttyS0 57600 vt100
########################################################

12 ) Nun noch den SSH Server installieren, ein root Passwort setzen und Lilo einmal ausführen:
user@chroot# aptitude install lilo openssh-server
user@chroot# lilo
user@chroot# passwd

13 ) Das gröbste sollte damit erledigt sein. Wir verlassen das chroot nun mittels exit, unmounten alle Partitionen und schließen unseren SSH Client, um mit diesem direkt auf unsere serielle Konsole von 1und1 zu connecten. Dann stellen wir in der Weboberfläche unter dem Punkt Recovery Tool das System um auf “normales System” booten und geben den Reboot in Auftrag. Wenn alles glatt gegangen ist, sehen wir nun wie unser System manierlich hochfährt, das Raid erkennt, das Filesystem initialisiert, eine IP per DHCP bekommt und den Openssh Server startet.

Zuletzt möchte ich mich noch bei allen Bedanken, die Anleitungen und HOWTOs zu diversen Themen frei zugänglich ins Netz stellen. Denn nur so kann freie Software (auch wenn die GPL nicht so frei ist wie die BSD Lizenz) auch Verbreitung finden. Dies hat mich auch darin bestärkt, meine Erfahrung hier zusammenzutragen und zu veröffentlichen. Ich hoffe dass ich an alles gedacht habe und der Post als Anleitung funktioniert.

Links zum Beitrag, welche unter anderem die Erstellung ebendieses erst ermöglicht haben:

http://www.schirmacher.de/
Debian Kernel als .deb erstellen
http://anotherwayuk.wordpress.com/2007/05/05/howto-11-root-server-networkdhcp-issues-fixing-network-connectivity/
Etch from scratch

4 Kommentare zu „1und1 XXL Server mit Debian Etch per debootstrap installieren“

  • [...] man Debian Etch trotzdem auf einem 1&1 Root-Server XXL installieren kann, hat Alexander Kasper heute freundlicherweise in seinem IT-Blog beschrieben. Ich glaube, mit [...]

  • Im Serverbereich nutze ich auch ausschließlich Debian. Ist einfach das beste System auf dem Markt. Die Community lebt von solchen HOWTO’s… Danke.

  • David:

    Super tolles HOWTO. Mich würde noch interessieren, warum lilo und nicht grub installiert wurde.
    Ich hätte noch evtl. die Partition(en) verschlüsselt (dmcrypt), je nachdem wofür das System genutzt wird und vor allem, weil man ja keinen physischen Zugriff darauf hat.
    Wie schaut’s eigentlich mit ‘ner Firewall dafür aus? Direkt auf dem Server, in ‘ner virtuellen Umgebung (auch, wenn viele Admins sowas ablehnen) oder als eigener Zusatzserver?

    Danke vielmals für die Arbeit!

  • [...] handeln, um Etch manierlich auf solch einem Server zu betreiben. Ich habe meine Erfahrungen unter 1und1 XXL Server mit Debian Etch per debootstrap installieren | Hochwald IT Blog mal zusammengefasst. Weiterhin biete ich ab und an die neuen Kernel mit Support für die XXL [...]

Kommentieren