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 „Quereinsteiger-HowTo“
wurde von Leuten erbeten, die von Red Hat, Mandriva 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 eventuell 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 Hardware-Komponenten zurechtzukommen, die sich sonst nicht gut mit verschiedenen Boot- oder Installationsmedien vertragen.
![]() |
Anmerkung |
---|---|
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. |
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 506 MB Speicher für eine Nur-Konsolen-Installation oder ca. 1536 MB, 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/sda6
(dies soll in diesem Beispiel unsere
Root-Partition sein):
# mke2fs -j /dev/sda6
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/sda5
# sync # swapon /dev/sda5
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
Einbindungspunkt (/mnt/debinst
) ist rein willkürlich
gewählt; es wird später noch öfter darauf verwiesen.
# mkdir /mnt/debinst
# mount /dev/sda6
/mnt/debinst
![]() |
Anmerkung |
---|---|
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. |
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[26] 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
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 ftp2.de.debian.org/debian
einsetzen, vorzugsweise einen Server in Ihrer Nähe. Eine Liste aller Spiegel-Server
finden Sie auf http://www.debian.org/mirror/list.
Wenn Sie eine Debian GNU/Linux Jessie-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:
amd64
,
arm64
,
armel
,
armhf
,
i386
,
mips
,
mipsel
,
powerpc
,
ppc64el
oder
s390x
.
# /usr/sbin/debootstrap --arch ARCH jessie \ /mnt/debinst http://ftp.us.debian.org/debian
Sie haben jetzt ein echtes, aber noch etwas mageres Debian-System auf der Festplatte. Wechseln Sie mit chroot hinein:
# LANG=C.UTF-8 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
Abhängig von dem Wert von TERM müssen Sie unter Umständen das Paket
ncurses-term
installieren, um Unterstützung dafür
zu bekommen.
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:
installieren Sie das Paket makedev und erzeugen Sie einen Standardsatz von statischen Gerätedateien, indem Sie (nach dem Chroot) Folgendes ausführen:
# apt-get install makedev # mount none /proc -t proc # cd /dev # MAKEDEV generic
erzeugen Sie manuell lediglich 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.
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 Einbindungspunkte (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
Indem Sie die dritte Zeile der Datei /etc/adjtime
auf
„UTC“ oder „LOCAL“ setzen, legen Sie fest, ob
das System die Hardware-CMOS-Uhr als UTC-Zeit oder als lokale Zeit
interpretiert. Mit folgendem Befehl können Sie diese Option setzen:
# editor /etc/adjtime
Hier ein Beispiel:
0.0 0 0.0 0 UTC
Mit folgendem Befehl wählen Sie Ihre Zeitzone aus:
# dpkg-reconfigure tzdata
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 127.0.1.1 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.
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 jessie main deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main
Denken Sie daran, aptitude update
auszuführen, nachdem
Sie Änderungen in der sources.list-Datei gemacht haben.
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-Gebietsschemata
empfohlen.
# aptitude install locales # dpkg-reconfigure locales
Um Ihre Tastatur zu konfigurieren (falls nötig):
# aptitude install console-setup # dpkg-reconfigure keyboard-configuration
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.
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
Installieren Sie einen Kernel Ihrer Wahl, indem Sie seinen Paketnamen benutzen:
# aptitude install linux-image-arch-etc
Um Ihr Debian GNU/Linux-System boot-fä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.cfg
für grub2 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 grub2
ist so
einfach wie:
# aptitude install grub-pc
# grub-install /dev/sda
# update-grub
Der zweite Befehl installiert grub2 (in diesem Fall in den
Master Boot Record (MBR) von sda
). Der letzte Befehl erzeugt
eine schöne und funktionsfähige Konfigurationsdatei
/boot/grub/grub.cfg
.
Beachten Sie, dass hier davon ausgegangen wird, dass eine Gerätedatei namens
/dev/sda
erzeugt worden ist. Es gibt alternative
Möglichkeiten, grub2 zu installieren, aber das ist nicht
Thema dieses Anhangs.
Hier ein grundsätzliches Beispiel einer /etc/lilo.conf
:
boot=/dev/sda6
root=/dev/sda6
install=menu delay=20 lba32 image=/vmlinuz initrd=/initrd.img label=Debian
Für den Fall, dass Sie sich auf dem System über die Konsole anmelden können, kann dieser Abschnitt übersprungen werden. Falls das System später über das Netzwerk erreichbar sein soll, müssen Sie SSH installieren und einen Zugang einrichten:
# aptitude install ssh
Das Login als root ist standardmäßig deaktiviert, daher können Sie einen Zugang einrichten, indem Sie ein Passwort setzen und das Login für root mit Passwort wieder aktivieren:
# passwd # editor /etc/ssh/sshd_config
Dies ist die Option, die aktiviert werden muss:
PermitRootLogin yes
Es kann ebenfalls ein Zugang eingerichtet werden, indem ein SSH-Schlüssel für root hinzugefügt wird:
# mkdir /root/.ssh # cat << EOF > /root/.ssh/authorized_keys ssh-rsa .... EOF
Und zu guter Letzt können Sie einen Zugang einrichten, indem Sie einen nicht-root-Benutzer anlegen und für diesen ein Passwort setzen:
# adduser joe # passwd joe
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