Debian aus laufendem Linux heraus installieren

Heute habe ich mir vorgenommen parallel zu meinem laufendem Arch Linux ein Debian-System aufzusetzen. Da ich mir zu langes Herumgefrickel auf einem System ohne Desktop sparen wollte, sollte es nicht komfortable menügetriebene Standardinstallation von Debian werden. Ziel war auch gleich die fstab und die Benutzerkonten des laufenden Systems übernehmen zu können.

Prinzipiell gibt es für dieses Thema schon eine offizielle Anleitung, aber ich will hier trotzdem mal meine Schritte festhalten.

Vorbereitungen

Zuerst gilt es für Debian eine Root-Partition vorzubereiten. Ich verwende LVM also ist das recht unkompliziert. Zuerst zwacke ich von meiner Volume Group hdd-neu 50 GB für ein neues Volume namens “debian” ab (man gönnt sich ja sonst nichts).

lvcreate -L 50G -n debian hdd-neu

Dann erzeuge ich auf der neuen Partition ein ext3 Dateisystem

mke2fs -j /dev/hdd-neu/debain

Anschließend mounte ich die neue Partition nach /mnt/debinst

cd /mnt
mkdir debinst
mount /dev/hdd-neu/debain debinst

Als nächstes muss man sich irgendwo her das Debian-Installationstool namens debootstrap besorgen. Für Arch-Nutzer gibt es dazu ein Package in den AUR.

Installation von Debian

Wenn man debootstrap erfolgreich installiert hat kann man mit der Installation des Debian-Basissystems beginnen.

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

Kopieren der Konfigurationsdateien

Nun kann man die fstab des laufenden Systems kopieren und Anpassungen vornehmen wie die den Mountpunkt von / zu ändern.

cp /etc/fstab /mnt/debinst/etc/fstab

Jetzt kann man auch die Login-Daten kopieren. Man sollte vorher aber vielleicht noch eine Sicherungskopie der Original Debian Gruppen- und Nutzerdaten anfertigen.

cp /etc/passwd /etc/shadow /etc/group /mnt/debinst/etc/

Es ist natürlich nützlich auf dem neuen System Netzwerkzugriff zu haben. Da ich mir nicht sicher bin welcher meiner beiden Netzwerkkarten welcher Nummer zugeordnet wird habe ich einfach mal meine beide für DHCP konfiguriert. So sieht meine /mnt/debinst/etc/network/interfaces dann aus:

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

#To use dhcp:
#
auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet dhcp

Damit man auch weiß auf welchem System man arbeitet lohnt es sich im neuen System einen entsprechenden Hostnamen zu setzen.

echo DebianHostName > /mnt/debinst/etc/hostname

Es ist sicherlich sinnvoll für Security-Updates folgende zwei Zeilen in der /mnt/debinst/etc/apt/sources.list hinzuzufügen

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

Installation von Anwendungen

Jetzt ist es an der Zeit einen chroot in das neue Debian-System durchzuführen.

LANG=C chroot /mnt/debinst /bin/bash
export TERM=xterm-color

Um später auf der Konsole des neuen System nicht mit einer kryptischen Tastenbelegung hantieren zu müssen lohnt es sich noch locales und console-data zu installieren.

aptitude install locales
dpkg-reconfigure locales
aptitude install console-data
dpkg-reconfigure console-data

Es wird Zeit auf dem neuen System einen Kernel zu installieren. Ich habe mich für den einfachen amd64-Kernel entschieden.

apt-get install linux-image-amd64

Jetzt wäre ich eigentlich fertig. Aber ich hätte gerne noch einen laufenden Desktop, z.B. Xfce wenn ich das neue System starte:

aptitude install xfce4 xfce4-goodies

Und dazu kommt noch GDM als Display Manager

aptitude install gdm

Damit GDM auch gleich startet sollte man in /etc/inittab noch das default runlevel auf 5 setzen.

Debian-Root im LVM

Mein Debian-Root liegt ein einem Logical Volume weswegen eine zusätzliches Skript beim booten mit ausgeführt werden muss. Dazu muss auch eine neue Ramdisk erstellt werden.

cp /usr/share/initramfs-tools/scripts/local-top/lvm2 /etc/initramfs-tools/scripts/local-top/
dpkg-reconfigure linux-image-2.6.32-5-amd64

Vorbereitungen für den ersten Start von Debian

Es ist an der Zeit, sich aus dem Debain-chroot zu verabschieden und in das zur Zeit laufende Linux-System zurück zu kehren. Dann musste ich noch die für den Bootvorgang benötigten Dateien aus dem /boot-Verzeichnis des Debian-chroots in mein echtes /boot-Verzeichnis kopieren. Vorher unbedingt auf Namenskonflikte prüfen!

cp /mnt/debinst/boot/* /boot

Zum Schluss muss ich Grub noch zeigen, wo er Debian findet. Dazu lege ich zunächst der Übersicht halber zwei symbolische Verknüpfungen in /boot an.

ln -s vmlinuz-2.6.32-5-amd64 vmlinuz-debian
ln -s initrd.img-2.6.32-5-amd64 initrd-debian

Danach füge ich die folgenden Zeilen in meine /boot/grub/menu.lst ein.

title Debian
root (hd0,5)
kernel /vmlinuz-debian root=/dev/mapper/hdd--neu-debian ro nomodeset
initrd /initrd-debian

Jetzt noch den neuen Bootloader schreiben und fertig ist die Sache.

grub-install /dev/sda

Bei einem Neustart des Rechners sollte man jetzt erfolgreich das neue Debian booten können.

Sweet: KDE Schreibtischglobus Marble in Version 0.10

Heute habe ich festgestellt, dass die neue KDE Version 4.5 in den Repositories von Arch Linux zur Installation zur Verfügung steht. Das habe ich natürlich gleich mal ausprobiert. Ich habe dann festgestellt, dass das Arbeitsflächen-Design überarbeitet wurde und beim ersten Anblick einen akuten Anfall von Augenschmerzen verursacht. Aber ich denke, dass ist mehr eine Gewöhnungssache.

Das Tolle an diesem Update ist aber unter anderem, dass der KDE Schreibtischglobus Marble in der Version 0.10, die mir schon im aktuellen Linux Magazin (09/10 S. 34) schmackhaft gemacht wurde, enthalten ist. Marble versucht, dem KDE Nutzer einen ähnlichen Funktionsumfang wie Google Earth zu bieten. Allerdings kann Marble natürlich nicht mit hoch aufgelösten Luftbildern dienen. Dafür kann man verschiedene freie Karten auf den virtuellen Globus projezieren.

Zum Beispiel kann man sich die freie Straßenkarte OpenStreetmap anzeigen lassen. Diese ist besonders gut geeignet um ein neues Feature in Version 0.10 zu nutzen: die Routenplanung. Marble ist nun in der Lage, ebenfalls durch Daten aus dem OpenStreetmap Projekt, eine Punkt-zu-Punkt Navigation anzubieten. Dazu kann man einfach den Start- und Zielort auf der Karte anklicken und es wird eine Route für Kraftfahrzeuge, Fahrradfahrer oder Fußgänger berechnet. Auch das Setzen von Via-Punkten ist möglich.

Kfz-Route
Kfz-Route

Fahrrad-Route
Fahrrad-Route

Fußgänger-Route
Fußgänger-Route

Ich habe dieses neue Feature gleich mal ausprobiert und eine Route vom Barkhausen-Bau zur Alten Mensa auf dem Campus der TU Dresden berechnet. Anhand dieser, zugegeben recht trivialen Route kann man doch die unterschiedlichen Randbedingungen der Routenplanung für die verschiedenen Verkehrsteilnehmer sehen.

Kraftfahrzeuge werden, wie es nicht anders zu erwarten war, nur über die öffentlichen Straßen geführt. Ein Fahrradfahrer wird dagegen durch Schranken hindurch (da bin ich mir nicht ganz sicher, ob das ein Bug oder ein Feature ist) über eine private Lieferantenzufahrt geschickt. Der Fußgänger kann eine noch kürzere Route über Fußwege und Treppen benutzen.

Satellitenbild mit Wolken
Satellitenbild mit Echtzeit-Wolken

Ein weiteres tolles Feature ist die “Echtzeit”-Darstellung von Wolken auf Satellitenbildern. “Echtzeit” bedeutet in diesem Fall, dass die Bilder alle 3 Stunden aktualisiert werden. Das Ganze scheint auch nur bei Tageslicht zu funktionieren. So ist auf dem Bild gerade keine einzige Wolke über der Ost-Hälfte Amerikas zu sehen, was ich mir irgendwie schwer vorstellen kann. Auch ist die Darstellung nur bei einem relativ großem Maßstab möglich. Trotzdem ein tolles Feature.

Neben der Erde kann Marble übrigens auch noch andere Himmelskörper darstellen. Im Lieferumfang ist neben der Erde auch noch der Mond enthalten. Weitere Himmelskörper wie der Mars oder die Venus können mit wenigen Klicks aus dem Internet nachinstalliert werden.

Alles in allem ist Marble ein weiteres gelungenes Stück Open Source Software.