C.4. Debian GNU/Linux von einem anderen Unix/Linux-System aus installieren

Dieses Kapitel beschreibt, wie man Debian GNU/Linux von einem vorhandenen Unix- oder Linux-System aus installiert, ohne den menügeführten Installer zu verwenden, der im Rest dieses Handbuchs beschrieben wird. Dieses „Einmal-quer-durch-die-Installation“-HowTo wurde erbeten von Leuten, die von Red Hat, Mandrake oder Suse zu Debian GNU/Linux wechseln. In diesem Kapitel gehen wir davon aus, dass Sie ein wenig Erfahrung mit *nix-Befehlen haben sowie mit der Navigation durch das Dateisystem. In diesem Abschnitt symbolisiert ein $ einen Befehl, der im Homeverzeichnis des Benutzers ausgeführt wird, während # bedeutet, dass das Kommando im Debian-chroot ausgeführt wird.

Sobald Sie das neue Debian-System nach Ihren Wünschen konfiguriert haben, können Sie Ihre evtl. vorhandenen eigenen Dateien hinüber verschieben und loslegen. Deswegen wird dies auch die „zero-downtime“-Debian GNU/Linux-Installation (Installation ohne eine Zeitspanne, während der das System nicht verfügbar ist) genannt. Es ist ebenso ein geschickter Weg, mit Hardwarekomponenten zurechtzukommen, die sich sonst nicht gut mit verschiedenen Boot- oder Installationsmedien vertragen.

C.4.1. Es geht los!

Benutzen Sie die *nix-Partitionierungsprogramme des vorhandenen Systems, um Ihre Festplatte nach Bedarf neu zu partitionieren; erstellen Sie zumindest ein neues Dateisystem plus Swap. Sie benötigen mindestens 150MB Speicher für eine Nur-Konsolen-Installation oder ein Minimum von 300MB, wenn Sie vorhaben, X zu installieren.

Dateisysteme auf Ihren Partitionen erzeugen: um ein Dateisystem auf einer Partition zu erstellen, zum Beispiel ein ext3-Dateisystem auf /dev/hda6 (dies soll in diesem Beispiel unsere root-Partition sein):

# mke2fs -j /dev/hda6

Um stattdessen ein ext2-Dateisystem zu erzeugen, lassen Sie das -j weg.

Initialisieren und aktivieren Sie den Swap (passen Sie die Partitionsnummer für Ihre geplante Debian-Swap-Partition an):

# mkswap /dev/hda5
# sync; sync; sync
# swapon /dev/hda5

Hängen Sie eine Partition (wahrscheinlich die neue) als /mnt/debinst ins Dateisystem ein (das Installationsverzeichnis; es wird das root-(/)-Dateisystem des neuen Debian). Der Einhängepunkt (/mnt/debinst) ist rein willkürlich gewählt; es wird später noch öfter darauf verwiesen.

# mkdir /mnt/debinst
# mount /dev/hda6 /mnt/debinst

Anmerkung

Falls Sie Teile des Dateisystems (z.B. /usr) auf andere Partitionen eingehängt haben möchten, müssen Sie diese Verzeichnisse manuell erstellen und einhängen, bevor Sie mit dem nächsten Schritt weitermachen.

C.4.2. debootstrap installieren

Das Programm, das auch der Debian-Installer benutzt und das als offizielle Methode angesehen wird, ein Debian-Basissystem zu installieren, ist debootstrap. Es nutzt wget und ar, aber ansonsten hängt es nur von /bin/sh ab. Installieren Sie wget und ar, falls es noch nicht auf Ihrem laufenden System vorhanden ist; dann laden Sie debootstrap herunter und installieren es ebenfalls.

Wenn Sie ein rpm-basiertes System haben, können Sie alien verwenden, um das .deb in ein .rpm-Paket umzuwandeln oder Sie laden sich eine rpm-Version von http://people.debian.org/~blade/install/debootstrap herunter.

Oder Sie nutzen die folgende Prozedur, um es manuell zu installieren. Erstellen Sie ein Arbeitsverzeichnis, in das Sie die .deb-Pakete entpacken.

# mkdir work
# cd work

Das debootstrap-Binary finden Sie im Debian-Archiv (achten Sie darauf, die richtige Datei für Ihre Architektur zu verwenden). Laden Sie das debootstrap.deb aus dem Pool herunter, kopieren Sie es in das Arbeitsverzeichnis work und extrahieren Sie daraus die Binär-Dateien. Sie benötigen root-Rechte, um die Binär-Dateien zu installieren.

# ar -xf debootstrap_0.X.X_arch.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv

Beachten Sie, dass Sie eine minimale Version von glibc (derzeit GLIBC_2.3) installiert haben müssen, um debootstrap starten zu können. Zwar ist debootstrap selbst ein Shell-Script, aber es ruft verschiedene Werkzeuge auf, die glibc erfordern.

C.4.3. Starten Sie debootstrap

debootstrap kann die benötigten Dateien direkt vom Archiv herunterladen, wenn Sie es starten. Sie können in dem folgenden Befehl jeden Debian-Archivspiegel-Server statt http.us.debian.org/debian einsetzen, vorzugsweise einen Spiegel in Ihrer Nähe. Eine Liste aller Spiegelserver finden Sie auf http://www.debian.org/misc/README.mirrors.

Wenn Sie eine Debian GNU/Linux-Sarge-CD eingelegt und in /cdrom eingehängt haben, können Sie statt der http-URL auch eine file-URL angeben: file:/cdrom/debian/.

Setzen Sie in dem folgenden debootstrap-Befehl für ARCH eine der folgenden Architekturbezeichnungen ein: alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390 oder sparc.

# /usr/sbin/debootstrap --arch ARCH sarge \
    /mnt/debinst http://http.us.debian.org/debian

C.4.4. Das Basissystem konfigurieren

Sie haben jetzt ein echtes, aber noch etwas mageres Debian-System auf der Festplatte. Wechseln Sie mit Chroot hinein:

# LANG= chroot /mnt/debinst /bin/bash

C.4.4.1. Partitionen einhängen

Sie müssen die Datei /etc/fstab erzeugen.

# editor /etc/fstab

Hier ein Beispiel, das Sie sich anpassen können:

# /etc/fstab: static file system information.
#
# file system    mount point   type    options                  dump  pass
/dev/XXX         /             ext3    defaults                 0     1
/dev/XXX         /boot         ext3    ro,nosuid,nodev          0     2

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

/dev/fd0         /mnt/floppy   auto    noauto,rw,sync,user,exec 0     0
/dev/cdrom       /mnt/cdrom    iso9660 noauto,ro,user,exec      0     0

/dev/XXX         /tmp          ext3    rw,nosuid,nodev          0     2
/dev/XXX         /var          ext3    rw,nosuid,nodev          0     2
/dev/XXX         /usr          ext3    rw,nodev                 0     2
/dev/XXX         /home         ext3    rw,nosuid,nodev          0     2

Nutzen Sie den Befehl mount -a, um alle Dateisysteme, die Sie in /etc/fstab angegeben haben, einzuhängen; um die Dateisysteme einzeln einzuhängen, benutzen Sie:

# mount /path   # z.B.: mount /usr

Sie können das proc-Dateisystem mehrfach einhängen und in frei wählbare Verzeichnisse, obwohl /proc dafür üblich ist. Wenn Sie nicht mount -a verwendet haben, stellen Sie sicher, dass Sie proc einhängen, bevor Sie weitermachen:

# mount -t proc proc /proc

Der Befehl ls /proc sollte jetzt ein nicht-leeres Verzeichnis zeigen. Falls dies fehlschlägt, können Sie vielleicht proc außerhalb der chroot-Umgebung einhängen:

# mount -t proc proc /mnt/debinst/proc

C.4.4.2. Die Tastatur konfigurieren

Um Ihre Tastatur zu konfigurieren, verwenden Sie:

# dpkg-reconfigure console-data

C.4.4.3. Das Netzwerk konfigurieren

Um Ihr Netzwerk einzurichten, müssen Sie die Dateien /etc/network/interfaces, /etc/resolv.conf und /etc/hostname anpassen.

# editor /etc/network/interfaces 

Hier sind ein paar einfache Beispiele aus /usr/share/doc/ifupdown/examples:

######################################################################
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# See the interfaces(5) manpage for information on what options are 
# available.
######################################################################

# We always want the loopback interface (die Loopback-Schnittstelle wird
# immer benötigt).
auto lo
iface lo inet loopback

# To use dhcp (wenn Sie DHCP benutzen möchten):
#
# auto eth0
# iface eth0 inet dhcp

# An example static IP setup: (broadcast and gateway are optional)
# (ein Beispiel für eine statische IP-Einstellung / broadcast und gateway
# sind hierbei optional):
# auto eth0
# iface eth0 inet static
#     address 192.168.0.42
#     network 192.168.0.0
#     netmask 255.255.255.0
#     broadcast 192.168.0.255
#     gateway 192.168.0.1

Tragen Sie die Adresse Ihres/Ihrer Nameserver(s) sowie Suchregeln in /etc/resolv.conf ein:

# editor /etc/resolv.conf

Eine einfache /etc/resolv.conf:

search hqdom.local\000
nameserver 10.1.1.36
nameserver 192.168.9.100

Geben Sie den Hostnamen Ihres Systems ein (zwischen 2 und 63 Stellen lang):

# echo DebianHostName > /etc/hostname

Wenn Sie mehrere Netzwerkkarten haben, sollten Sie die Namen der Treibermodule in /etc/modules in die richtige Reihenfolge bringen. Während des Bootens wird dann jede Karte die Schnittstellenbezeichnung (eth0, eth1, etc.) bekommen, die Sie erwarten.

C.4.4.4. Zeitzone, Benutzer und APT einrichten

Setzen Sie die Zeitzone, fügen Sie einen normalen Benutzer hinzu und wählen Sie die Paketquellen für apt, indem Sie Folgendes ausführen:

# /usr/sbin/base-config new

C.4.4.5. Die lokalen Einstellungen (locales) konfigurieren

Um Ihre lokalen Einstellungen anzupassen, wenn Sie nicht Englisch verwenden möchten, installieren Sie das Paket locales und konfigurieren es:

# apt-get install locales
# dpkg-reconfigure locales

BEACHTEN SIE: APT muss vor diesem Schritt eingerichtet werden, z.B. während der base-config-Phase. Bevor Sie locales mit anderen Zeichensätzen als ASCII oder latin1 verwenden, lesen Sie das dazugehörige „Localization“-HowTo.

C.4.5. Einen Kernel installieren

Wenn Sie vorhaben, dieses System zu booten, wollen Sie wahrscheinlich einen Linux-Kernel und einen Bootloader. Sie finden verfügbare, bereits fertig paketierte Kernel mit dem Befehl

# apt-cache search kernel-image

Um einen Kernel Ihrer Wahl zu installieren, benutzen Sie seinen Paketnamen.

# apt-get install kernel-image-2.X.X-arch-etc

C.4.6. Den Bootloader einrichten

Um Ihr Debian GNU/Linux-System bootfähig zu machen, richten Sie Ihren Bootloader ein, so dass er den installierten Kernel mit Ihrer neuen root-Partition startet. Bedenken Sie, dass debootstrap keinen Bootloader installiert, allerdings können Sie apt-get in Ihrer Debian-chroot-Umgebung benutzen, um dies zu erledigen.