Open Source im professionellen Einsatz
Bild 3: Der Bootloader Isolinux wartet auf seinen Einsatz. Die Eingabetaste startet das System ohne Sonderwünsche.

Debians anpassbares Live-System

Live-System mit Etch im Eigenbau

Um Daten zu retten und Linux auszuprobieren sind Live-Systeme ideal. Das Debian-Projekt bietet mit "Debian Live" eine elegante Variante . Dieser Workshop weist den Weg zum individuellen System.

Live-Systeme erlauben es, ein Betriebssystem direkt von CD, DVD oder USB-Stick zu starten, ohne die Festplatte anzutasten. Dadurch eignen sie sich für die Reparatur kaputter Installationen, für forensische Aufgaben und zum risikofreien Testen von Linux. Als Erfinder der Live-CD gilt Klaus Knoppers, der sein "Knoppix" mittlerweile in Version 5.1.1 anbietet.

Knoppix versucht, zu möglichst vielen Aufgabenbereichen ein passendes Programm anzubieten. Trotzdem gibt es Anwender mit anderen Software-Wünschen und so ist eine erdrückende Vielfalt an verschiedenen spezialisierten Knoppix-Derivaten entstanden, die den Platzhirsch um bestimmte Anwendungen erweitern und anderes streichen.

Das Debian-Projekt baut bereits seit Anfang 2006 an einer Live-Variante ihrer Linux-Distribution. Trotz der gemeinsamen Basis mit Knoppix und seinen zahlreichen Abkömmlingen, die allesamt von Debian abstammen, sind die Schöpfer von "Debian Live" mit dem momentanen Status von Live-Systemen unzufrieden. Sie monieren unter anderem die Beschränkung auf eine einzige Architektur (i386), die eigenwillige Änderungen offizieller Softwarepakete aus Gründen der Platzersparnis und die Verwendung eines individuell gepatchten Kernels.
Mit "Debian Live" möchte das Projekt zu den Wurzeln zurückkehren. Es beschränkt sich auf unveränderte Pakete aus genau einem Debian-Zweig, also entweder Stable, Testing oder Unstable, und das System soll für möglichst viele Prozessorarchitekturen zur Verfügung stehen. Das engagierte Entwicklerteam um Daniel Baumann schafft es sogar, Debians Standardkernel einzubinden: Zusammen mit zwei Modulpaketen ist dieser zum ungewöhnlichen Live-Einsatz tauglich. Die nützliche Konsequenz daraus: Ein Anwender startet Debian von der Live-CD, testet die Hardware-Unterstützung auf seinem Rechner und kann sicher sein, dass sich ein installiertes Debian gleich verhält.

Stabil oder aktuell?

Die bewährte dreigeteilte Archivstruktur von Debian steht auch beim Download eines Debian-Live-Mediums zur Verfügung. Der Benutzer wählt zwischen monatlich gebauten und sehr stabilen Etch-Images, dem ebenfalls recht gut getesteten, wöchentlich aktualisierten Lenny-Zweig, und den täglich generierten Medien der Sid-Distribution. Die Images stehen auf dem Projektserver jeweils für USB-Sticks (oder ähnliche portable Massenspeicher) sowie zum Brennen auf CD zur Verfügung. Jedes Image kann wiederum als KDE-, Gnome- und Xfce-Version und als GUI-lose Puristenvariante heruntergeladen werden. Aus Ressourcengründen existieren letztere nur als i386-Ausgaben. Im Gegensatz dazu sind Images, die sich an den offiziellen Debian-Veröffentlichungen orientieren für AMD64, PowerPC und i386 in den genannten Geschmacksrichtungen zu haben.

Bild 1: lh_config erstellt einen geeigneten Ausgangspunkt zum Basteln am eigenen Live-System.

Schon die ungewöhnlich Flexibilitäthebt "Debian Live" von anderen installationslosen Linux-Systemen ab. Das Projekt selbst sieht sein Ziel aber nicht nur in den automatisch erstellten Medien, sondern besonders im "live-helper". Diese Software ermöglicht es, ein individuelles bootbares System zusammenzustellen. In Sachen Software-Auswahl hat der Benutzer dabei freie Wahl - der Netzwerkadministrator etwa stellt sich so sein textbasiertes Analysesystem von Grund auf selbst zusammen, der Liebhaber anspruchsvoller 3D-Effekte packt Compiz zum offiziellen Gnome-CD-Image dazu.

Selbst gemacht schmeckt am besten

Benutzer von Debian "Testing" oder "Unstable" installieren "live-helper" und das notwendige Tool "cdebootstrap" direkt über APT. Beim Helper sollten Sie darauf achten, eine Version ab 1.0~a22 einzusetzen - mit 1.0~a21 funktioniert zumindest der folgende Workshop nicht. Aktuelle Pakete finden sich hier.

Wer Etch nutzt, muss zunächst folgende Zeile zu seiner /etc/apt/sources.list hinzufügen:

Listing 1: Hinzufügen zur //etc/apt/sources.list

deb http://backports.org/debian etch-backports main

Danach installieren Sie die Pakete wie folgt:

Listing 2: Paketinstallation

aptitude install -t etch-backports live-helper cdebootstrap

Live-Helper besteht aus einigen Shellskripten, die alle mit "lh_ beginnen. Ein Konfigurationsverzeichnis steuert das Verhalten der Tools. Am einfachsten lässt sich dieses mit "lh_config" erstellen (siehe Bild 1). Dann kann man sich mittels Editor um die Feineinstellungen kümmern. Ein "lh_build" als Root ruft alle nötigen Programme auf, um das Image zu erstellen. Mit diesem Wissen lässt sich der Weg zu einer CD mit KDE aus dem Testing-Zweig Lenny auf wenige Zeilen komprimieren:

Listing 3: Testing-Zweigkomprimieren

mkdir /root/debian-live
cd /root/debian-live
lh_config -d lenny -p kde
lh_build
wodim dev=/dev/Ihr CD-Brenner binary.iso

Auf diese Art und Weise geht allerdings einiges an Flexibilität verloren. Richtig spannend wird Debian Live für den, der dem Zustand zwischen "lh_config" und "lh_build" Beachtung schenkt. Mit den Dateien im Verzeichnis "config" lässt sich so gut wie jede Ecke der personalisierten Distribution nach Wunsch einrichten.

Ein Live-System wird grob gesagt in drei Stufen erstellt. Im ersten Stadium, dem Bootstrapping, landet ein Grundsystem der gewählten Debian-Distribution in einem Verzeichnis. Dann wechselt Live-Helper mit dem "chroot"-Systemaufruf in diese frische Installation und richtet dort die gewählten Zusatzpakete ein. Im letzten Schritt, als "Binary" bezeichnet, komprimieren die Skripte das Installationsverzeichnis, installieren einen Bootloader und erstellen, je nach Wunsch, ein CD-, DVD-, Festplatten- oder ein über Netzwerk verteilbares Image. Im Konfigurationsverzeichnis passt der Anwender jeden dieser Schritte an seine Bedürfnisse an.

Bild 2: Eine simple Installationsanweisung. Achten Sie darauf, keine Konflikte auszulösen - etwa durch zwei Mailserver - sonst lässt der Paketmanager Aptitude einen Kandidaten weg.

Eine beispielhafte Anwendung ist eine um Multimedia-Funktionen erweiterte Live-CD. Aus rechtlichen Gründen liefert Debian bestimmte Videocodecs nicht mit und entfernt sogar unfreie Teile des Abspielprogramms Mplayer. Auch wenn die Position des Projekts verständlich ist, brauchen einige Multimedia-Inhalte aus dem Internet diese Zusatzpakete, die Christian Marillat praktischerweise in seinem Debian-Multimedia-Paketdepot zum Download anbietet. Als sinnvolle Basis bietet sich das Gnome-System aus Lenny an; das deutsche Tastaturlayout als Voreinstellung lässt sich gleich dazu bestellen:

Listing 4: Deutsches Tastaturlayout einstellen

mkdir /root/multimedia-live
cd /root/multimedia-live
lh_config -d lenny -p gnome --bootappend keyb=de
cd config

Eine Inspektion der Datei "binary" verrät, dass die Variable "LH_BOOTAPPEND" den Wert der Kommandozeilenoption übernommen hat. Die meisten dieser Optionen haben eine direkte Entsprechung in einer der Dateien, nur "-d" kümmert sich auch noch um Dinge wie die Wahl einer passenden Kernel-Version.

Um das Multimedia-Repository in die künftige Live-CD einzubinden muss es in das Unterverzeichnis "chroot_sources". Dort platzierte Dateien werden in der Chroot-Phase an die "/etc/apt/sources.list" angehängt, wenn sie auf ".bootstrap" enden, beziehungsweise zur Laufzeit, wenn die Endung ".binary" lautet. Die notwendigen Dateien lassen sich schnell ohne Editor erstellen:

Listing 5: Dateien für Repository erstellen

cd chroot_sources
echo 'deb http://mirror.home-dn.net/debian-multimedia/ testing main' > multimedia.bootstrap
cp multimedia.bootstrap multimedia.binary

Debians Paketverwaltung prüft allerdings die Authentizität der Pakete und braucht dafür den öffentlichen kryptographischen Schlüssel des Paketarchivs. Um lästiges Wehklagen über nicht vertrauenswürdige Quellen zu vermeiden, muss dieser als "*.{bootstrap,binary}.gpg" abgelegt werden, Sie erhalten ihn aus dem Web.

Listing 6: Schlüssel einbinden

curl 'http://www.debian-multimedia.org/gpgkey.pub' > multimedia.bootstrap.gpg
cp multimedia.bootstrap.gpg multimedia.binary.gpg

Jetzt finden die Wunschpakete ohne weiteres ihren Weg ins Image - alle Dateien in "chroot_local-packageslists" werden gelesen und die darin benannten Pakete installiert (Bild 2). Hinterlassen Sie dort einfach die Namen Ihrer Lieblings-Software, um die Abhängigkeiten kümmert sich Live-Helper von selbst.

Bild 3: Der Bootloader Isolinux wartet auf seinen Einsatz. Die Eingabetaste startet das System ohne Sonderwünsche.

Selbstgebaute ".deb"-Pakete finden Platz in "chroot_local-packages", und der Inhalt von "chroot_local-includes" wird wörtlich ins System kopiert. Das Heimatverzeichnis des Live-Benutzers können Sie so via "chroot_local-includes/etc/skel" mit Konfigurationsdateien und sonstigen Daten bestücken.

Bild 4: Debian Live verwendet das komprimierte Nur-Lese-Dateisystem Squashfs, um auf dem Speichermedium Platz zu sparen.

Bauprojekt

Der Bauvorgang beginnt mit einem "lh_build" im Verzeichnis "multimedia-live" (nicht in "config"!). Der Download der Pakete und das Komprimieren des Chroot-Verzeichnisses (siehe Kasten: Squashfs, Unionfs und Live-Initramfs) kann dauern, aber als Ergebnis liegt zum Schluss ein "binary.iso" vor, dass sich mit auf CD oder DVD brennen lässt.

Squashfs, Unionfs und Live-Initramfs

Diese drei Komponenten sind alles, was die Live-Variante von einer "normalen" Debian-Installation trennt.

Das Booten des Systems übernimmt Live-Initramfs. Es wurde unter dem Namen Casper ursprünglich von Ubuntu entwickelt. Die Dokumentation der Bootoptionen in "/usr/share/live-helper/templates/casper/parameters.txt" ist im Großen und Ganzen immer noch gültig und lässt sich dem Bootloader mitgeben (Bild 3).

Squashfs ist ein komprimiertes Dateisystem. Die Erstellung (Bild 4) ist relativ rechenintensiv, erreicht aber recht hohe Kompressionsraten. Auf älterer Hardware kann auch die Umkehraufgabe, das Einhängen des Wurzeldateisystems, ein bis zwei Minuten dauern (Bild 5).

Squashfs ist nur lesbar. Um Softwareinstallationen im laufenden System trotzdem zu ermöglichen, stülpt "Debian Live" ein Unionfs über. Dieses erlaubt das Überschreiben von Dateien im Wurzeldateisystem, indem es Schreiboperationen transparent an eine RAM-Disk weiterleitet. Das Verzeichnis "/cow" ("Copy on write") enthält im laufenden System die Dateien, die bearbeitet wurden.

Bild 5: Schwache PCs und Software-Emulatoren wie Qemu haben etwas Mühe beim Mounten des Wurzeldateisystems.

Das Bild nach dem Booten dürfte so manchem Debian-User vertraut sein. Es ist mit dem einer frischen Installation absolut identisch. Der Blick in die "/etc/apt/sources.list" verrät, dass unser "Custom repository" auch da ist, wo es sein soll.

Fazit

Debian Live ist ein schöner Ansatz, auch wenn die Tools noch der Weiterentwicklung bedürfen. Beim Testen für diesen Artikel verschwand etwa die "/etc/resolv.conf" zum falschen Zeitpunkt aus dem Chroot und Aptitude konnte das Debian-Archiv nicht mehr auffinden. Aber: In einer neueren Version von Live-Helper war das Problem von den fleißigen Entwicklern schon behoben. Tipps zum Umgang mit Live-Helper sind im Debian-Wiki gesammelt. Wer Erfahrung mit Shell-Skripten hat, kann auch die Lektüre von "/usr/bin/lh_*" aufschlussreich finden. (uba)

Ausgabe 08/2014

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook