2054757

Live-Systeme mit Lesslinux selbst bauen

04.06.2015 | 09:31 Uhr |

Linux gibt jedem die Möglichkeit, ein Betriebssystem nach den eigenen Vorstellungen zu gestalten. Vor allem für Notfall- und Rettungs-DVDs lohnt sich die individuelle Anpassung.

Wenn Sie eine Linux-Distribution wie Ubuntu installieren, nutzen Sie in der Regel eine Live-DVD. Dabei handelt es sich um ein voll funktionsfähiges Linux-System, das von einem schreibgeschützten Medium läuft. Neben typischen Desktop-Live-Systemen gibt es aber auch noch spezialisierte Live-Systeme wie das PC-WELT Notfall-System , Gparted Live oder Rescatux . Technisch Erfahrene können sich dabei sogar ein individuell angepasstes Live-System selbst zusammenstellen. Der Aufwand dabei ist hoch, wenn man bei null beginnen muss. Etwa einfacher geht’s mit der Abänderung einer vorhandenen Distributions-DVD („Remaster“). Doch ist der Prozess meist schlecht dokumentiert und bei jeder neuen Version anders.

Wir haben uns für einen anderen Weg entschieden: In diesem Artikel stellen wir Ihnen das Build-System von Lesslinux vor, das die Basis des PC-WELT Notfall-Systems ist. Die Nutzung des Less-Linux-Builders ist anspruchsvoll. Es ist damit aber möglich, eine für Ihre Bedürfnisse optimal angepasste Live-DVD oder einen Linux-Boot-Stick zu erstellen und aktuell zu halten.

Startauswahl: Ein Bootmenü ermöglicht bei Live-DVDs den Start mit mehreren Optionen, beispielsweise für den abgesicherten Modus oder andere Sprachen.
Vergrößern Startauswahl: Ein Bootmenü ermöglicht bei Live-DVDs den Start mit mehreren Optionen, beispielsweise für den abgesicherten Modus oder andere Sprachen.

1. Wie ein Linux-Live-System funktioniert

Dass Linux von einer DVD oder einem USB-Stick bootet, ist nicht selbstverständlich. Dafür ist ein spezieller Bootloader zuständig. Zum Einsatz kommen in der Regel Syslinux (USB) oder auf einer CD/DVD Isolinux . Grub 2 ist auf Live-DVDs vor allem bei Multibootsystemen zu finden. Grub ermöglicht es, ISO-Dateien direkt von der DVD zu booten, und eignet sich auch für Uefi-Systeme. Syslinux und Grub sind auch für das Menü zuständig, das beim Start die Auswahl mehrerer Betriebssysteme und deren Startoptionen zeigt.

Der Bootprozess: Sobald Sie das gewünschte Betriebssystem im Menü ausgewählt haben, lädt der Bootloader den Linux-Kernel und dieser die initiale Ramdisk in den Hauptspeicher (initrdr). Aus der Ramdisk startet ein Mini-Linux, das die nötigen Treiber (Kernel-Module) besitzt, um DVD-Laufwerk, USB-Stick oder die Festplatte einzubinden. Danach starten zahlreiche Scripts, etwa zur Initialisierung des Netzwerks und der grafischen Oberfläche. Linux wurde nicht für den Start von schreibgeschützten Medien konstruiert: Während das System arbeitet, müssen temporäre Dateien abgelegt und Logdateien geschrieben werden. Das Problem wird durch die Ramdisk gelöst, in die sich das komplette System beim Start kopiert.

Komprimierung: Der Platz ist auf einer DVD ist mit vier GB beschränkt, und es dauert sehr lange, viele kleine Systemdateien zu lesen. Daher kommen Komprimierungsverfahren zum Einsatz. Meist wird dafür Squash FS verwendet. Das Dateisystem ist dabei in Container-Dateien untergebracht und gepackt. Ein Kernel-Modul bindet diese Container als virtuelles Dateisystem ein. Der Inhalt der Squash-FS-Dateien lässt sich zur Laufzeit nicht ändern.

2. Vorbereitungen für das Build-System

Der Lesslinux-Builder lässt sich im Prinzip auf jedem Linux-System einrichten. Es sind allerdings etliche Zusatz-Tools dafür erforderlich, die bei jeder Distribution anders heißen und teilweise auch anders arbeiten. Der Entwickler empfiehlt den Download eines fertigen Lesslinux-Systems mit dem Namen Jabba , das bereits alle nötigen Tools enthält. Jabba bietet bislang nur eine reduzierte grafische Oberfläche, was die Verwendung etwas erschwert. Wir haben uns deshalb für Lubuntu 14.10 (32 Bit) auf unserem Entwicklungs-PC entschieden.

Script in Aktion: Sie starten den Build-Vorgang in einem Terminal-Fenster. Den Fortschritt können Sie in einem zweiten Fenster verfolgen, das sich automatisch öffnet.
Vergrößern Script in Aktion: Sie starten den Build-Vorgang in einem Terminal-Fenster. Den Fortschritt können Sie in einem zweiten Fenster verfolgen, das sich automatisch öffnet.

Da zahlreiche Programmpakete kompiliert und viele Dateien bewegt werden müssen, ist die Anforderung an die Rechenleistung hoch, mehr noch an die Geschwindigkeit des Laufwerks. Optimal ist eine schnelle SSD mit etwa 40 GB freiem Platz und eine leistungsstarke CPU. Für die Entwicklung eines eigenen Live-Systems können Sie Lubuntu auch in einer virtuellen Maschine verwenden. Das kostet zwar Leistung, ist aber machbar, wenn die virtuelle Festplatte auf einer SSD liegt oder über USB eingebunden ist.

So retten Sie Ihren PC mit Ubuntu

Das Build-System setzt voraus, dass die SSD unter „/mnt/archiv“ eingehängt ist. Das erledigen Sie in einem Terminalfenster wie folgt:

sudo -p mkdir /mnt/archiv/LessLinux sudo mount /dev/sd[xy] sudo chmod -R 777 /mnt/archiv

Beachten Sie die Groß-Klein-Schreibung bei „LessLinux“. Ersetzen Sie „[xy]“ durch den Gerätepfad der SSD. Die letzte Zeile setzt Schreib- und Leserechte für alle Benutzer. Legen Sie dann einen neuen Benutzer an:

adduser --home /home/mattias --shell /bin/bash mattias

Adduser fordert Sie auf, Kennwort und Kennwortbestätigung einzutippen. Die Frage nach den persönlichen Daten beantworten Sie alle mit der Enter-Taste. Der Benutzer muss genau den Namen „mattias“ tragen. Er wird von einigen Scripts als Benutzer ohne Admin-Rechte benötigt.

Installieren Sie die erforderlichen Pakete für die Software-Entwicklung mit den drei Zeilen

apt-get install git autoconf lun zip ruby-all-dev ruby-magic ruby-hpricot ruby-sqlite3 apt-get install libmagic-dev tex info gawk squashfs-tools g++ python python-dev gem install mahoro

Zuletzt laden Sie die Entwicklungsumgebung mit den folgenden zwei Befehlszeilen herunter:

cd /mnt/archiv/LessLinux git clone https://github.com/Myria-de/lesslinux-builder.git

Das Github-Repositorium entspricht dem Entwicklungsstand des Artikels. Wenn Sie eine neuere Version ausprobieren möchten, ersetzen Sie die Github-Adresse durch „ https://github.com/mschlenker/lesslinux-builder “. Es ist allerdings nicht garantiert, dass in jeder Entwicklungsphase alles einwandfrei funktioniert.

Systemüberwachung: Beim Kompilieren der Programmpakete langweilt sich der Prozessor nicht. Durch mehrere Threads wird das System enorm ausgelastet.
Vergrößern Systemüberwachung: Beim Kompilieren der Programmpakete langweilt sich der Prozessor nicht. Durch mehrere Threads wird das System enorm ausgelastet.

3. Lesslinux-Live-System erstellen

Wechseln Sie in einem Terminalfenster in das Verzeichnis „/mnt/archiv/LessLinux/lesslinux-builder“, und verschaffen Sie sich mit sudo su root-Rechte. Sie finden im Verzeichnis das Script „quickbuild_lubuntu.sh“. Es prüft zuerst, ob unter „/mnt/archiv“ ein Datenträger eingebunden ist. Wenn nicht, bricht es ab. Ist Linux ohnehin auf einer SSD installiert oder Sie wollen das Verzeichnis auf der Festplatte verwenden, dann können Sie das ändern. Kommentieren Sie jede Zeile im Block von „if [ -z „$mounted“ ] ; then“ bis „fi“ mit einem # aus. „quickbuild_ubuntu.sh“ ist für ein Ubuntu-System geeignet und „quickbuild_jabba.sh“ für LessLinux-Jabba. Starten Sie dann das Script mit

bash quickbuild_lubuntu.sh

Es fragt zuerst, wie viele Threads Sie verwenden wollen. Übernehmen Sie den Standard „4“ mit der Enter-Taste. Sie können auch einen höheren Wert eingeben, etwa „12“ bei einem PC mit Sechs-Core-CPU, was den Build-Vorgang beschleunigt. Hier besteht jedoch die Gefahr, dass ein benötigtes Programm noch nicht fertig kompiliert ist, obwohl es bereits für ein anderes Paket erforderlich ist. Bleiben Sie daher besser beim Standardwert. Bestätigen Sie die nächste Frage mit der Enter-Taste. Der Build-Prozess beginnt dann automatisch.

Stage 1 und 2: Das Script teilt den Build-Prozess in drei Phasen. „Stage01“ umfasst alle Pakete, die für ein minimales Linux-System nötig sind, und einige Build-Tools. Die Quellpakete werden automatisch heruntergeladen und kompiliert. Den Fortschritt können Sie in einem Logfenster beobachten. Danach folgt „Stage02“. Hier werden System-Tools und Programme wie Firefox, Thunderbird oder VLC erstellt. Insgesamt gibt es Scripts für etwa 700 Pakete. Das Kompilieren dauert auf einem Intel Core i7-4790 mit SSD etwa sechs bis acht Stunden. Ist der PC langsamer, müssen Sie deutlich mehr Zeit einplanen. Nach Abschluss von Stage02 beendet sich das Script.

Paketabhängigkeiten: Über die Paketverwaltung – hier in der Abbildung Synaptic – lässt sich schnell ermitteln, welche anderen Pakete eine Software benötigt.
Vergrößern Paketabhängigkeiten: Über die Paketverwaltung – hier in der Abbildung Synaptic – lässt sich schnell ermitteln, welche anderen Pakete eine Software benötigt.

Stage 3: Sie müssen jetzt nur noch mit dem Script „bash stage03_rescue.sh“ die Squash-FS-Container und die Startumgebung (Isolinux/Grub) für Lesslinux Search and Rescue erzeugen (etwa ein GB). Alternativ verwenden Sie „stage03_jabba.sh“ für ein Lesslinux-Jabba-System inklusive aller Programmpakete (etwa vier GB). Die ISO-Datei liegt anschließend im Verzeichnis „/mnt/archiv/LessLinux/stage03“. Testen Sie diese in einer virtuellen Maschine. Mit der Zeile

dd if=Name-der-ISO-Datei.iso of=/dev/sd[x]

erzeugen Sie einen bootfähigen USB-Stick.

Ersetzen Sie „[x]“ durch den Gerätepfad der SSD. Für einen neuen Build müssen Sie das Verzeichnis „stage03“ umbenennen oder löschen.

4. Das Lesslinux-System anpassen

Öffnen Sie das „Script stage03_rescue.sh“ in einem Editor. Sie sehen Pfade zu mehreren Konfigurationsdateien, die Informationen zur Gestaltung und zu den Programmpaketen enthalten. „pkglist_neutral_rescue_GTK3.txt“ ist einfach eine Programmliste. Setzen Sie ein „#“ vor Pakete, die Sie nicht in Ihrem Live-System benötigen. Die anderen Konfigurationsdateien bestimmen, wie das Hintergrundbild oder das Bootmenü aussehen und welcher Linux-Kernel zum Einsatz kommt.

Konfigurationsdatei: Lesslinux-Builder verwendet XML-Dateien, in denen Versionsnummer, Dateiname, Download-Adresse und Abhängigkeiten definiert sind.
Vergrößern Konfigurationsdatei: Lesslinux-Builder verwendet XML-Dateien, in denen Versionsnummer, Dateiname, Download-Adresse und Abhängigkeiten definiert sind.

Pakete hinzufügen: Welche Pakete gebaut werden, wird durch XML-Dateien in den Verzeichnissen unter „scripts“ bestimmt. Wenn Ihr Lieblingsprogramm nicht dabei ist, empfiehlt es sich, erst einmal die vorhandenen Scripts zu analysieren. Diese enthalten Versionsnummern, Download-Adressen und Script-Zeilen für Build-Prozess und Installation. Der schwierigste Abschnitt ist unter „<builddeps>“ zu finden. Hier geben Sie die Programmpakete an, die eine Anwendung benötigt. Sind diese noch nicht vorhanden, müssen Sie dafür eigene Script-Dateien erstellen. Was alles nötig ist, finden Sie am einfachsten über die installierten Pakete bei Lubuntu, Ubuntu oder Debian heraus. Im Paketmanager Synaptic klicken Sie beim gewünschten Paket auf „Eigenschaften“ und gehen auf die Registerkarte „Abhängigkeiten“. Hinter „Benötigt:“ stehen die erforderlichen Pakete.

Portables Linux auf dem USB-Stick - so geht's

Fragen an den Lesslinux-Entwickler

Mattias Schlenker ist der Entwickler des Build-Systems, mit dem sich Linux-Boot-DVDs oder USB-Sticks mit Lesslinux Search and Rescue oder Lesslinux Safersurf erstellen lassen.
Vergrößern Mattias Schlenker ist der Entwickler des Build-Systems, mit dem sich Linux-Boot-DVDs oder USB-Sticks mit Lesslinux Search and Rescue oder Lesslinux Safersurf erstellen lassen.

LinuxWelt: Wann haben Sie damit begonnen, Linux-Live-CDs zu entwickeln?

Schlenker: Meine ersten Live-CDs entstanden auf Basis von Damn Small Linux als Notfall- und Rettungssysteme. Weiter ging es mit CDs und DVDs auf Basis von Knoppix, Kanotix/Sidux und Ubuntu. Ich erstelle heute noch Live-Systeme auf Basis von Ubuntu LTS für einige Kunden.

LinuxWelt: Warum der Name Lesslinux?

Schlenker: Der bedeutete früher einmal „Light Embeddable Small Scalable“. Der Name passt zwar nicht mehr ganz, aber ist immer noch möglich, auf unter 300 MB ganz gut nutzbare Systeme auf Lesslinux-Basis zu bauen. Ich schrieb irgendwann mal: „Lacking Elegance, Stupid, Scary“ – das trifft es heute am besten.

LinuxWelt: Warum nutzen Sie keine bekannte Linux-Distribution als Basis?

Schlenker: Das habe ich über fünf Jahre lang gemacht und stieß immer wieder auf Probleme: Desktop-Systeme, die in einen großen Container gepackt werden, der mit einem Overlay-Dateisystem versehen wird, haben so ihre Tücken: Erlaubte Schreibzugriffe im gesamten Dateisystem sind bei sicherheitsrelevanten Themen nicht ganz ohne. Es war daher für mich an der Zeit, eine Live-Distribution zu bauen, die wirklich die Bedürfnisse von Live-Systemen berücksichtigt.

LinuxWelt: Wie viel Zeit haben Sie für die erste Lesslinux-Version benötigt?

Schlenker: Mit den ersten Scripts habe ich Mitte 2008 begonnen. Ab April 2009 hat das erste Interesse von Kunden die Entwicklung beschleunigt. Im Herbst 2009 waren dann bereits gut nutzbare Builds in freier Wildbahn unterwegs.

LinuxWelt: Warum Ruby als Script-Sprache?

Schlenker: Ich war auf der Suche nach einer Script-Sprache, welche die Kompaktheit von Perl mit der Objektorientierung von Java verbindet und dabei Paradigmen funktionaler Programmierung (SML) berücksichtigte. All das kann Ruby. Vielleicht würde ich heute zu Python greifen, Python macht fast alles fast genauso gut wie Ruby (und manches besser) und hat in Europa und den USA eine weitere Verbreitung.

LinuxWelt: Wie finden Sie die Abhängigkeiten von Programmen heraus?

Schlenker: Für Abhängigkeiten beim Start eines Programms habe ich Scripts, die per „ldd“ analysieren, welche Bibliotheken absolut notwendig sind. Darüber hinausgehende Abhängigkeiten sind oft nur für Spezialfälle nötig und bleiben außen vor..

LinuxWelt: Was für einen PC benutzen Sie für die Entwicklung?

Schlenker: Meist einen Quadcore Xeon und einen Quadcore i7. Schiere Rechenleistung ist dabei weniger wichtig als eine schnelle Festplatte (SSD) und intelligente Parallelisierung.

LinuxWelt: Die Reparatur-Tools in Lesslinux Search and Rescue richten sich eher an den Windows-Anwender. Wie hoch ist die Akzeptanz bei dieser Zielgruppe?

Schlenker: Die Akzeptanz ist sehr hoch, zumal typische Lesslinux-Nutzer meist schon etwas Erfahrung in Wartungs- und Rettungsdingen haben. Dass es sich um ein Linux-System handelt, spielt da keine große Rolle. Und auch Linux-erfahrene Anwender sind oft froh, wenn ein grafisches Front-End Tipperei abnimmt, ohne die Mechanik zu verdecken.

LinuxWelt: Sie haben die Quellen des Build-Systems kürzlich bei Github veröffentlicht und damit für einen größeren Personenkreis geöffnet.

Schlenker: Es gibt viele positive Reaktionen. Die stammen aber meist von Leuten, die bereits zu Lesslinux beigetragen haben und Github eben als die modernere Methode ansehen, die Entwicklung mitzuverfolgen und mitzumachen.

LinuxWelt: Was ist Aufregendes für die Zukunft geplant?

Schlenker: Neue Funktionen werden nicht aufregend sein, sondern bestenfalls „lange herbeigesehnt“. Eher zum Spaß arbeite ich an der Unterstützung für den Raspberry Pi. Echte 64-Bit-Builds sind ebenfalls nicht fern, auch wenn diese bei der Hauptanwendung Rettungssystem kaum Vorteile gegenüber 32 Bit bieten. Bereits im Einsatz sind Thin-Client-Systeme auf Lesslinux-Basis. Die logische Konsequenz sind also Raspberry-basierte Thin Clients, die auf Windows-Server oder Xen-Instanzen im lokalen Netz oder in der Cloud zugreifen.

Dieser Artikel stammt aus der LinuxWelt 1/2015

In der LinuxWelt 1/201 5 stellen wir Ihnen die besten aktuellen Linux-Systeme vor, die Sie alle auch auf der Heft-DVD finden.

0 Kommentare zu diesem Artikel
2054757