Von einem der auszog, einen Debian-Server zu basteln (Teil 4)

Debian „Squeeze“ installieren

Im letzten Teil haben wir die Festplatte partitioniert, heute wird Debian „Squeeze“ mit debootstrap installiert. Debootstrap installiert ein Minimalsystem, das dann den eigenen Bedürfnissen angepasst werden kann. Dadurch kann auf dem System genau die Software installiert werden, welche benötigt wird.

Der Abstand zum letzten Artikel erklärt sich dadurch, dass ich sehr viele Versuche brauchte, um das System zum Laufen zu kriegen. Zuerst sind Fehler gekommen bei der Installation des Grub2, da irgendwelche Devices gefehlt haben. Nach etwas surfen bin ich auf die /dev/pts gestoßen, dass fehlte. Dann habe ich festgestellt, dass man Debian nicht aus einem Kubuntu heraus komplett installieren kann. Debootstrap geht zwar, aber beim der Grub2-Installation kommt es zu Fehlern, da unterschiedliche Kernel verwendet werden.

Dann habe ich das Debian Live Projekt gefunden. Mit diesen Scripts kann ein USB-Stick-Image mit dem aktuellen Debian vorbereitet werden. Mit diesem System binn ich dann weiter gekommen, habe aber dann gekämpft, den Bootloader Grub2 zu installieren. Das neue System ist gebootet, hat aber dann nicht nach der Passphrase gefragt und sich dann beschwert, die verschlüsselte Datei nicht lesen zu können. Also habe ich zwischendurch ein Net-Installation-Image direkt von Debian gezogen und auf einen Stick kopiert. Die Test-Installation verlief reibungslos auch mit Verschlüsselung.  Damit habe ich dann geschaut, welche Unterschiede die Konfigurationsdateien haben. Diese waren identisch.

Dann waren nur noch die zum Booten nötigen unverschlüsselten Datein übrig, bei denen etwas falsch laufen konnte. Hier habe ich dann heraus gefunden, dass die initrd.gz keine Module zum entschlüsseln hatte. Und das lag einfach daran, dass ich im gebootstrapten System vergessen hatte cryptsetup zu installieren.

Aber jetzt läuft es und hier ist der nächste Teil der Server-Installationsanleitung.

Mit den folgenden Befehlen wird das Binary-Image für einen USB-Stick erzeugt und auf den Stick mit der Adresse /dev/sdX kopiert. Ich habe das unter einem Kubuntu 10.10 ausgeführt.

$ sudo -s
# apt-get install live-build
# mkdir debian-image
# cd debian-image
# lh config -a amd64 -d squeeze -p xfce-desktop -b usb-hdd
# lh build
# dd if=image.bin -of=/dev/sdX

Jetzt kann das neue Live-Debian-System gebootet und eine Shell geöffnet werden. Anmerkung: Alle Befehle werden als root ausgeführt, dazu kann mit

$ sudo -s

eine Root-Shell geöffnet werden. Zuerst installieren wir debootstrap auf unserm USB-Linux:

# apt-get install debootstrap

Falls noch nicht geschehen, muss die verschlüsselte Root-Partition geöffnet werden:

# cryptsetup luksOpen /dev/sda2 crypt_root

Anschließend werden die vorbereitete Partition gemountet. Dazu wird ein Verzeichnis angelegt:

# mkdir /mnt/debinst
# mount /dev/mapper/crypt_root /mnt/debinst

Dann wird die unverschlüsselte Boot-Partition eingehängt:

# mkdir /mnt/debinst/boot
# mount /dev/sda1 /mnt/debinst/boot

Nun wird mit debootstrap das System installiert:

# debootstrap --arch amd64 squeeze /mnt/debinst http://ftp.de.debian.org/debian

Dann werden die UUIDs der Partitionen ermittel (am besten in einem zweiten Terminalfesnter, dann kann mit Copy&Paste gearbeitet werden):

# blkid /dev/sda1
# blkid /dev/sda2
# blkid /dev/sda3

Diese UUIDs werden gleich für die /etc/crypttab benötigt. Nachdem das Basissystem installiert ist, wird nun in das neue System gewechselt, vorher werden noch die Devices eingehängt :

# mount -o bind /dev /mnt/debinst/dev
# mount -t proc proc /mnt/debinst/proc
# mount -t sysfs sys /mnt/debinst/sys
# mount -t devpts devpts /mnt/debinst/dev/pts
# LANG=C chroot /mnt/debinst /bin/bash

Als erstes sollte das Passwort für den User root gesetzt werden:

# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Die /etc/crypttab wird mit den folgendem Inhalt angelegt (die UUIDs wurden oben mit blkid ermittelt):

crypt_root UUID=<SDA2_ROOT_VOLUME_ID> none luks
crypt_swap UUID=<SDA3_SWAP_VOLUME_ID> crypt_root luks,swap,keyscript=/lib/cryptsetup/scripts/decrypt_derived

Auf diese Angaben kann sich dann die anzulegende Datei /etc/fstab beziehen, die mit folgendem Inhalt erzeugt wird:

# /etc/fstab: static file system information.
#
# file system           mount point  type  options            dump  pass
proc                    /proc        proc  defaults           0     0
/dev/mapper/crypt_root  /            ext3  errors=remount-ro  0     1
UUID=<SDA1_BOOT_VOLUME_ID>  /boot    ext3  defaults           0     2
/dev/mapper/crypt_swap  none         swap  sw                 0     0

Nun wird /etc/network/interfaces angepasst. Die Datei sollte dann wie folgt aussehen:

# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Der Name des Servers kann auch noch angepasst werden:

# echo DebianHostName > /etc/hostname

Für die weitere Installation werden die Quellen für apt-get erweitert:

# vi /etc/apt/sources.list

Inhalt:

deb http://ftp.de.debian.org/debian squeeze main
deb http://ftp.de.debian.org/debian squeeze contrib
deb http://ftp.de.debian.org/debian squeeze non-free
deb http://security.debian.org/ squeeze/updates main
deb-src http://ftp.de.debian.org/debian squeeze main
deb-src http://ftp.de.debian.org/debian squeeze contrib
deb-src http://ftp.de.debian.org/debian squeeze non-free
deb-src http://security.debian.org/ squeeze/updates main

Mit

# apt-get update

werden die neuen Quellen eingelesen. Die Timezone (Europe/Berlin) wird mit folgendem Kommando eingestellt:

# dpkg-reconfigure tzdata
Europe
Berlin

Nun werden lokale Einstellungen (locales) und Tastaturlayout konfiguriert:

# apt-get install locales
# dpkg-reconfigure locales
de_DE.UTf-8 UTF-8
en_US.UTF-8 UTF-8
default: en_US.UTF-8

# apt-get install console-data
Select keymap from arch list
qwertz
German
Other
Germany
Germany - eleminate dead keys
. Combined - Latin; Slavic Cyrillic; Greek
# dpkg-reconfigure console-data
Select keymap from arch list
qwertz
German
Standard
latin1 - no dead keys

Nun noch die mounts in die mtab eintragen. Dazu einen Symlink erstellen:

# ln -sf /proc/mounts /etc/mtab

Jetzt wird der passende Kernel installiert. Mit dem Befehl

# apt-cache search linux-image

wird eine Liste mit Kernel-Images angezeigt und dann kann der passende Kernel installiert werden:

# apt-get install linux-image-amd64

Anschließend wird cryptsetup und der Bootloader GRUB2 installiert und eingerichtet:

# apt-get install cryptsetup
# apt-get install grub-pc
Linux command line leer lassen
/dev/sda wählen
# update-initramfs -u -k all

Nun werden weitere Packete installiert, die auf einem Server nützlich sind:

# apt-get install ssh
# apt-get install vim
# apt-get install less

Zum Schluss kann nun der Rechner neu gestartet und von der Festplatte gebootet werden. Beim Booten wird die Passphrase abgefragt. Nach Eingabe der Passphrase wird das System gestartet und man landet in der Konsole mit dem Login-Prompt.

Dieser Beitrag wurde unter Linux abgelegt und mit , , verschlagwortet. Setzen Sie ein Lesezeichen auf den Permalink.