&debian; von einem anderen Unix/Linux-System aus installieren Dieses Kapitel beschreibt, wie man &debian; 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; 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-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. Da dies überwiegend eine manuelle Prozedur ist, sollten Sie im Hinterkopf behalten, dass Sie einen erheblichen Teil der grundlegenden Systemkonfiguration selbst erledigen müssen, was auch mehr Wissen über Debian und über Linux allgemein erfordert als eine reguläre Installation. Sie können nicht davon ausgehen, dass Sie durch diese Prozedur ein System erhalten, das identisch ist zu dem aus einer normalen Installation. Sie sollten auch bedenken, dass in dieser Prozedur nur die grundlegenden Schritte zur Systemkonfiguration beschrieben sind. Es könnten zusätzliche Installations- oder Konfigurationsschritte erforderlich sein. 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 ungefähr 350MB Speicher für eine Nur-Konsolen-Installation oder ca. 1GB, wenn Sie vorhaben, X zu installieren (und noch mehr, wenn Sie Desktop-Umgebungen wie GNOME oder KDE installieren möchten). 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 Falls Sie Teile des Dateisystems (z.B. /usr) auf andere Partitionen speichern und eingebinden möchten, müssen Sie diese Verzeichnisse manuell erstellen und einbinden, bevor Sie mit dem nächsten Schritt weitermachen. <command>debootstrap</command> 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 und grundsätzlichen Unix-/Linuxwerkzeugen Dazu gehören die GNU Core Utilities und Kommandos wie sed, grep, tar und gzip. ab. Installieren Sie wget und ar, falls sie noch nicht auf Ihrem laufenden System vorhanden sind; dann laden Sie debootstrap herunter und installieren es ebenfalls. 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 Dateien. Sie benötigen root-Rechte, um die Binär-Dateien zu installieren. # ar -xf debootstrap_0.X.X_all.deb # cd / # zcat /full-path-to-work/work/data.tar.gz | tar xv Starten Sie <command>debootstrap</command> 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 &archive-mirror;/debian einsetzen, vorzugsweise einen Spiegel in Ihrer Nähe. Eine Liste aller Spiegelserver finden Sie auf . Wenn Sie eine &debian;-&releasename-cap;-CD eingelegt und in /cdrom eingebunden 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, amd64, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390 oder sparc. # /usr/sbin/debootstrap --arch ARCH &releasename; \ /mnt/debinst http://ftp.us.debian.org/debian Das Basissystem konfigurieren Sie haben jetzt ein echtes, aber noch etwas mageres Debian-System auf der Festplatte. Wechseln Sie mit chroot hinein: # LANG=C chroot /mnt/debinst /bin/bash Danach müssen Sie unter Umständen die Definition der Terminal-Variable anpassen, so dass sie mit dem Debian-Basissystem kompatibel ist, zum Beispiel: # export TERM=xterm-color Gerätedateien erzeugen An diesem Punkt enthält /dev/ nur sehr grundlegende Gerätedateien. Für die nächsten Schritte der Installation könnten zusätzliche Gerätedateien benötigt werden. Es gibt verschiedene Wege, hiermit umzugehen; welchen Sie benutzen, hängt von verschiedenen Faktoren ab: welches Gast-System Sie für die Installation verwenden, ob Sie vorhaben, einen modularen Kernel zu verwenden oder nicht und ob Sie für das neue System dynamische Gerätedateien (z.B. mittels udev) benutzen möchten oder statische. Einige der verfügbaren Optionen sind: erzeugen Sie einen Standardsatz von statischen Gerätedateien, indem Sie Folgendes ausführen: # cd /dev # MAKEDEV generic erzeugen Sie manuell nur bestimmte Gerätedateien mittels MAKEDEV. binden Sie das Verzeichnis /dev aus Ihrem Gast-System als /dev in Ihr Zielsystem ein. Beachten Sie, dass die postinst-Skripte einiger Pakete versuchen könnten, neue Gerätedateien zu erzeugen; deshalb sollte diese Option nur mit Vorsicht verwendet werden. Partitionen einbinden 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 /media/floppy auto noauto,rw,sync,user,exec 0 0 /dev/cdrom /media/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, einzubinden; um die Dateisysteme einzeln einzubinden, benutzen Sie: # mount /path # z.B.: mount /usr Aktuelle Debian-Systeme haben Einhängepunkte (Mountpoints) für Wechseldatenträger in /media, behalten aber aus Kompatibilitätsgründen auch symbolische Links in /. Erstellen Sie diese nach Bedarf, zum Beispiel mit: # cd /media # mkdir cdrom0 # ln -s cdrom0 cdrom # cd / # ln -s media/cdrom Sie können das proc-Dateisystem mehrfach einbinden und in frei wählbare Verzeichnisse, obwohl /proc dafür üblich ist. Wenn Sie nicht mount -a verwendet haben, stellen Sie sicher, dass proc eingebunden ist, 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 einbinden: # mount -t proc proc /mnt/debinst/proc Die Zeitzone setzen Eine Option in der Datei /etc/default/rcS legt fest, ob das System die Hardware-CMOS-Uhr als UTC-Zeit oder als lokale Zeit interpretiert. Mit dem folgenden Befehl können Sie diese Option setzen sowie Ihre Zeitzone festlegen: # editor /etc/default/rcS # tzconfig Das Netzwerk konfigurieren Um Ihr Netzwerk einzurichten, müssen Sie die Dateien /etc/network/interfaces, /etc/resolv.conf, /etc/hostname und /etc/hosts 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 beispielhafte /etc/resolv.conf: search hqdom.local 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 Und hier ein Beispiel für /etc/hosts mit IPv6-Unterstützung: 127.0.0.1 localhost DebianHostName # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 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. Apt konfigurieren Debootstrap hat eine grundsätzliche /etc/apt/sources.list erstellt, die es erlaubt, zusätzliche Pakete zu installieren. Allerdings möchten Sie vielleicht einige Quellen hinzufügen, z.B. für Quellpakete oder für Sicherheits-Updates: deb-src http://ftp.us.debian.org/debian etch main deb http://security.debian.org/ etch/updates main deb-src http://security.debian.org/ etch/updates main Denken Sie daran, aptitude update auszuführen, nachdem Sie Änderungen in der sources.list-Datei gemacht haben. 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. Es wird die Verwendung von UTF-8-Locales empfohlen. # aptitude install locales # dpkg-reconfigure locales Um Ihre Tastatur zu konfigurieren (falls nötig): # aptitude install console-data # dpkg-reconfigure console-data Beachten Sie, dass die Tastatureinstellung nicht verändert werden kann, während Sie im chroot sind; die Konfiguration wird jedoch beim nächsten Neustart aktiv. Einen Kernel installieren Wenn Sie vorhaben, dieses System zu booten, möchten Sie wahrscheinlich einen Linux-Kernel und einen Bootloader. Sie finden verfügbare, bereits fertig paketierte Kernel mit dem Befehl # apt-cache search linux-image Wenn Sie vorhaben, einen fertig paketierten Kernel zu verwenden, sollten Sie vielleicht vorher die Konfigurationsdatei /etc/kernel-img.conf erstellen. Hier eine Beispieldatei: # Kernel image management overrides # See kernel-img.conf(5) for details do_symlinks = yes relative_links = yes do_bootloader = yes do_bootfloppy = no do_initrd = yes link_in_boot = no Detailierte Informationen über diese Datei und die verschiedenen Optionen finden Sie in ihrer Handbuchseite (Manpage), die nach der Installation des Paketes kernel-package verfügbar ist. Wir empfehlen zu überprüfen, ob die eingetragenen Werte für Ihr System passend sind. Um einen Kernel Ihrer Wahl zu installieren, benutzen Sie seinen Paketnamen: # aptitude install linux-image-&kernelversion;-arch-etc Wenn Sie die Datei /etc/kernel-img.conf vor der Installation eines Debian-Kernels nicht erstellt haben, werden Ihnen eventuell einige Fragen gestellt, die sich darum drehen. Den Bootloader einrichten Um Ihr &debian;-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 aptitude in Ihrer Debian-chroot-Umgebung benutzen, um dies zu erledigen. Lesen Sie info grub oder man lilo.conf, um Informationen über die Einrichtung des Bootloaders zu bekommen. Wenn Sie das Betriebssystem, das Sie zur Installation von Debian benutzt haben, behalten möchten, müssen Sie lediglich einen Eintrag zur vorhandenen grub-menu.lst oder zu lilo.conf hinzufügen. Die Datei lilo.conf können Sie auch auf Ihr neues Debian-System kopieren und dort bearbeiten. Rufen Sie danach lilo auf (bedenken Sie: lilo nutzt die lilo.conf relativ zum System, von dem aus Sie es aufrufen). Die Installation und Einrichtung von grub ist so einfach wie: # aptitude install grub # grub-install /dev/hda # update-grub Der zweite Befehl installiert grub (in diesem Fall in den Master Boot Record (MBR) von hda). Der letzte Befehl erzeugt eine schöne funktionierende Konfigurationsdatei /boot/grub/menu.lst. Beachten Sie, dass hier davon ausgegangen wird, dass eine Gerätedatei namens /dev/hda erzeugt worden ist. Es gibt alternative Möglichkeiten, grub zu installieren, aber das ist nicht Thema dieses Abschnitts. Hier ein grundsätzliches Beispiel einer /etc/lilo.conf: boot=/dev/hda6 root=/dev/hda6 install=menu delay=20 lba32 image=/vmlinuz initrd=/initrd.img label=Debian Abhängig davon, welchen Bootloader Sie ausgewählt haben, können Sie jetzt einige zusätzliche Änderungen in /etc/kernel-img.conf machen. Für grub als Bootloader sollten Sie die Option do_bootloader auf no setzen. Um Ihre /boot/grub/menu.lst bei Installation oder Löschung von Debian-Kernels automatisch aktualisieren zu lassen, fügen Sie der Datei die folgenden Zeilen hinzu: postinst_hook = update-grub postrm_hook = update-grub Bei Verwendung von lilo als Bootloader muss do_bootloader auf yes gesetzt sein. Lesen Sie man yaboot.conf, um Informationen über die Einrichtung des Bootloaders zu bekommen. Wenn Sie das Betriebssystem, das Sie zur Installation von Debian benutzt haben, behalten möchten, müssen Sie lediglich einen Eintrag für das Debian-System zur vorhandenen yaboot.conf hinzufügen. Sie können auch die Datei yaboot.conf auf Ihr neues Debian-System kopieren und dort bearbeiten. Rufen Sie danach ybin auf (bedenken Sie: ybin nutzt die yaboot.conf relativ zum System, von dem aus Sie es aufrufen). Hier ein grundsätzliches Beispiel einer /etc/yaboot.conf: boot=/dev/hda2 device=hd: partition=6 root=/dev/hda6 magicboot=/usr/lib/yaboot/ofboot timeout=50 image=/vmlinux label=Debian Auf einigen Maschinen müssen Sie unter Umständen ide0: benutzen statt hd:. Zum Schluss Wie bereits vorher erwähnt, wird das installierte System nur sehr minimalistisch ausgestattet sein. Wenn Sie möchten, dass das System ein bisschen ausgereifter wird, gibt es eine einfache Methode, alle Pakete mit Standard-Priorität zu installieren: # tasksel install standard Sie können natürlich auch einfach aptitude benutzen, um individuell Pakete zu installieren. Nach der Installation liegen viele heruntergeladene Pakete in dem Verzeichnis /var/cache/apt/archives/. Sie können etliches an Festplattenspeicher wieder freigeben, indem Sie folgendes ausführen: # aptitude clean