[ View menu ]

Ubuntu auf Root-Server installieren

Einer meiner Root-Server verlangte nach einer Neuinstallation. Da mir die Dekstop-Edition ganz gut gefällt wollte ich mal die Server-Edition ausprobieren. Da man auf einem entfernten Root-Server natürlich keine CD einlegen kann ist etwas Arbeit notwendig damit man das auch ohne CD / DVD zum Arbeiten bringt.

Für Ubuntu spricht für mich das es aktueller ist als Debian und sich trotzdem weitestgehend wie ein Debian bedienen lässt. Außerdem ist die Einrichtung von XEN ohne grosse Neukompilierung des Kernels möglich.

Mehr unter weiter lesen …

Als Anleitung fand ich eine veraltete Anleitung im serversupportforum, diese Anleitung basiert auf dieser.

Erster Schritt: Netzwerkdaten sichern

Diese muss man später wieder eintragen und sind zur Konnektivität sehr wichtig.

Die wichtigsten Daten erhält man mit dem mit dem Befehl:

ifconfig

Man erhält in Etwa folgende Ausgabe:

eth0      Link encap:Ethernet  HWaddr 00:13:8F:10:92:8F
          inet addr:85.12.123.123  Bcast:85.12.123.255  Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17660218 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18155043 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1490089780 (1.3 GiB)  TX bytes:3045423043 (2.8 GiB)
          Interrupt:16 Base address:0xdc00

Folgende Werte sind wichtig: “inet addr”, “Bcast” und “Mask”, diese notieren.
Weiterhin brauchen wir noch die IP-Adresse des Gateways:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
85.12.123.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         85.12.123.1     0.0.0.0         UG    0      0        0 eth0

Hier notieren wir uns die IP hinter der Zeile die mit “0.0.0.0″ beginnt (in dem Fall also 85.12.123.1)

Weiterhin die Inhalte der Dateien /etc/resolv.conf notieren.

Zweiter Schritt: Rettungssystem booten & Festplatte vorbereiten

Jetzt startet ihr das Rettungssystem. Das geht meistens über das Web-Interface eures Anbieters.
Sobald ihr euch da eingeloggt habt leeren wir die Platte des Servers und teilen diese neu ein.

2. Festplatte & Dateisysteme

Ich habe meine Festplatte nach dem “klassischem” Schema partitioniert.
/dev/sda1 als ext2 für das Boot-Device mit dem Boot-Flag,
/dev/sda2 für Swap
/dev/sda3 als ext3 für die Daten
Einteilen des ganzen mit fdisk (Anleitung z.B. hier) und dann die Dateisysteme anlegen und alles mounten:

mke2fs /dev/sda1
mke2fs -j /dev/sda3
swapoff -a
swapon /dev/sda2
mkdir /mnt/debinst
mount /dev/sda3 /mnt/debinst
mkdir /mnt/debinst/boot
mount /dev/sda1 /mnt/debinst/boot

Hinweis: falls der Swap-Bereich vorher noch nicht eingerichtet worden ist, muss man diesen erst mit “mkswap /dev/sda2″ initialiseren. Danke an Andi für diesen Hinweis. (siehe Kommentare)

3. Ubuntu Basisdateien

Nachdem alles gemountet ist geht es an die Installation von Ubuntu mittels debbootstrap. (aktuell ist Intrepid)
Die Basisdateien holt man sich vom Ubuntu-Server. Danach muss man das .deb-Paket umwandeln, damit man es einfach entpacken kann:

mkdir /mnt/debinst/root
cd /mnt/debinst/root
wget http://de.archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.10ubuntu1~intrepid1_all.deb
ar -xf debootstrap_1.0.10ubuntu1~intrepid1_all.deb
cd /
tar -zxvf /mnt/debinst/root/data.tar.gz
/usr/sbin/debootstrap --arch amd64 intrepid /mnt/debinst/ http://de.archive.ubuntu.com/ubuntu

Wer keine 64Bit-Installation (bei Intel-Prozessoren auch amd64 benutzen) möchte erstzt das amd64 mit i386.
Das ganze dauert jetzt etwas. Das Script holt sich die Ubuntu-Basisdateien vom Ubuntu-Server und packt sie an die richtigen Stellen auf der gemounteten Partition.
Wenn das ganze dann fertig ist müssen wir das proc-Dateisystem und die Devices auf dem neuem System initialisieren. Das geht auch sehr einfach:

mount -t proc proc /mnt/debinst/proc
cd /mnt/debinst/dev/
MAKEDEV -v generic

4. Ubuntu Grundsystem installieren

Jetzt ins neu angelegte System chrooten. D.h. wir gaukeln den Programmen vor das das neue System das Basissystem ist – sprich virtuell wird /mnt/debinst zu /

LANG= chroot /mnt/debinst /bin/bash

Die voreingestellten Quelldateien beschränken sich auf die Basispakete. Für die volle Auswahl müssen wir die Source-Datei ändern:

vim /etc/apt/sources.list

Die Originaldatei sieht bei mir so aus:

deb http://de.archive.ubuntu.com/ubuntu intrepid main

Das ändere ich in:

deb http://de.archive.ubuntu.com/ubuntu intrepid main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu intrepid-security main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu intrepid-updates main restricted universe multiverse

Danach die Paketlisten updaten und schauen ob es evtl. Updates gibt:

apt-get update
apt-get upgrade

5. Grundsystem konfigurieren

Zuerst kümmern wir uns um das automatische Mounten der Dateisystem beim Systemstart. Das wird in der /etc/fstab getan. Hier der Inhalt meiner neuen fstab:

/dev/sda3       /       ext3    defaults,noatime                        0       1
/dev/sda1       /boot   ext2    defaults,noatime,nosuid,nodev           0       2

/dev/sda2       none    swap    sw                                      0       0
proc            /proc   proc    defaults                                0       0

Dann das nächste, das Netzwerk. Die Konfiguration wird an mehreren Stellen festgelegt.

/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address <IP-Adresse>
        netmask <Netzmaske>
        broadcast <Broadcast-Adresse>
        gateway <Default-Gateway>

Zur Namensauflösung muss die /etc/resolv.conf angepasst werden. Hier einfach das gleich ‘reinschreiben was im alten System auch schon in der Datei stand.
Den Hostnamen des neuen Systems legt man in der /etc/hostname fest. Diesen da einfach ‘rein schreiben.
Die Hosts-Datei ist obligatorisch, aber sollte für den Normalbetrieb zumindest die Definition für localhost aufweisen:

127.0.0.1       localhost.localdomain   localhost

Jetzt kommen Pakete und Einstellungen zur Sprache:

apt-get install language-pack-en language-pack-de
dpkg-reconfigure locales

Um Deutsch und UTF-8 zur Voreinstellung zu machen muss folgendes in die /etc/environment hinzugrüfgt werden:

LANG="de_DE.UTF-8"
LANGUAGE="de_DE:de:en_GB:en"

Nun kommen wir zur Uhrzeit. Dazu müssen wir die Zeitzone des Servers einstellen:

dpkg-reconfigure tzdata

Und danach können wir gleich die Uhrzeit des Servers mit einem NTP-Server abgeleichen:

ntpdate ptbtime1.ptb.de

Damit wir nachher wieder zum Server verbinden können brauchen wir noch den SSH Server:

apt-get install ssh

Und das Passwort für den root-Benutzer festlegen:

passwd root

6. Kernel installieren

Vor dem Kernel muss der Bootloader installiert werden. Da ich Grub bevorzuge mache ich das manuell vorher, ansosnten würde Lilo installiert werden.

apt-get install grub

Dann der eigentliche Kernel, das geht eigentlich sehr einfach. Zuerst schauen wir uns an welche Kernel-Version wir installieren wollen:

apt-cache search linux-image

Da wir einen Server betreiben wollen bietet sich das Server-Image an. Installiert wird es mit:

apt-get install linux-image-server

Man kann auch eine feste Version benutzen, dann wird der Kernel des Servers allerdings nicht mit geupdated.
Zum Abschluss der Kernel-Installation muss noch Grub eingerichtet werden:

cp /proc/mounts /etc/mtab
grub-install /dev/sda

Das dauert einen Augenblick, nicht erschrecken.

Damit Grub auch weiss, was es später booten soll muss eine menu.lst angelegt werden. Das macht man mit:

update-grub

Die Abfrage, ob eine menu.lst generiert werden soll, mit y bestätigen.

7. Neustart

Der Moment der Wahrheit. Der Neustart des Systems.

Erst mal müssen wir aus dem chroot ‘raus. Dazu einfach

exit

eingeben.
Jetzt kann man den Server neu starten lassen:

reboot

Und hoffen das der Server online geht.
Wenn alles geklappt hat hat man ein minimales Grundsystem, auf dem man aufbauen kann und z.B. Apache, MySQL und und und installieren.

Tags: , , , , , , , , , , , , , ,

2 Kommentare

  1. Andi says:

    Thx für den guten Artikel.
    Einen Fehler hab ich aber gefunden, und zwar muss damit “swapon ” funktioniert der swap erst erstellt werden mit “mkswap “.

    22.11.2009 @ 20:30

  2. StefanB says:

    Danke für den Hinweis. Normalerweise sollte bei einem vorinstallierten Linux (wovon ich hier ausgehe) schon ein Swap-Bereich eingerichtet sein, wodurch dieser Schritt entfällt. Ich nehm es trotzdem mal mit auf.

    22.11.2009 @ 21:52

Die neuesten Kommentare zu allen Beiträgen als RSS | TrackBack URI

Write Comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">