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.