Live-System - Einleitung
Unter einem Live-System versteht man normalerweise ein auf einem bootfähigen Nur-Lese-Medium wie CD, DVD oder USB-Stick installiertes Betriebssystem, das ohne Installation auf Festplatte oder SSD gestartet werden kann. Viele Distributionen bieten Live-Systeme zum Kennenlernen und Testen der Hardwareunterstützung an bevor diese dann auf dem Rechner fest installiert wird.
Typische Aufgaben für ein Live-System sind Datenrettung von einem System das nicht mehr starten will, Reparatur des Bootloaders, vergessenes Root-Passwort setzen, …
Hier wird Debian's Live-Build-Projekt vorgestellt. Live-Build ist ein umfassendes Baukasten-System zur Erstellung auch komplexer Live-Systeme. Es unterstützt praktisch alle Debian-basierte Distributionen, die die Paketverwaltung APT verwenden (Debian GNU/Linux, Devuan, Linux Mint, Ubuntu, …)
Überblick
Bei der Erstellung eines Live-Systems muss zunächst eine rekursive Abhängigkeit aufgelöst werden: Man benötigt ein lauffähiges System (Host-Rechner) um ein lauffähiges System zu erstellen. In den Default-Einstellungen ohne weitere Konfiguration erstellt Live-Build ein minimales Live-System auf Basis des auf dem Host-Rechner installierten Debian-Systems nur mit Debian-Paketen aus dem Main-Repository (siehe Tutorial 1). Diese Bootstrap-Phase des Erstellungsprozesses lässt sich bereits hinsichtlich Spiegel-Server, Repositories, Architektur, zusätzliche Paket-Quellen, … konfigurieren, und so auch an andere Distributionen anpassen.
In der Chroot-Phase lassen sich dem Minimal-System weitere Pakete und Dateien hinzufügen, sowie Hooks ausführen. Hier sind Erfahrung in der Debian-Systementwicklung und ein Test-System nützlich. Welche Pakete müssen angegeben werden, und welche werden über die Abhängigkeiten installiert? Wie heißen die vordefinierten Konfigurationsdateien und wo liegen diese? Solche Konfigurations- und andere Dateien lassen sich durch eigene angepasste Dateien überlagern.
Der Live-User beispielsweise wird erst während des Bootens des Live-Systems angelegt und eingerichtet. Anpassungen an den Bash-Dateien bzw. Benutzerumgebung sollten im Live-System unter /etc/skel / abgelegt sein.
Unter Hooks versteht man Shell-Programme, die in diesem Fall während der Chroot-Phase ausgeführt, und so zu dauerhaften Änderungen am Live-Systems führen. Mit Chroot-Hooks lassen sich beispielsweise quelltextbasierte Pakete während des Erstellungsprozesses kompilieren und installieren, Pakete mit dpkg-reconfigure anders vorkonfigurieren, oder von APT normalerweise automatisch startende Server-Dienste erst mal deaktivieren.
In der Binary-Phase werden Dateien hinzugefügt, die nicht direkter Bestandteil des Live-Systems sind. Das können PDF-Dokumente oder Multimedia-Dateien sein die man ohne Live-System-Start bereitstellen möchte, oder z. B. ein Repository mit Pakete für den optionalen Installer.
Die Boot-Phase des Live-Systems lässt sich auch anpassen. Dazu gehören Name des Live-Users, Sprache, Tastaturbelegung, Boot-Hooks und Persistenz.
Boot-Hooks sind Shell-Programme, die nach jedem Systemstart während des Bootens ausgeführt werden. So lassen sich beispielsweise weitere Live-User einrichten.
Mit Persistenz lassen sich Daten so speichern, dass sie nach dem nächsten Live-Systemstart wieder verfügbar sind. Persistenz unterwandert den typischen Nur-Lese-Schutz von Live-Systeme.
Installation
apt update apt install live-build
Hilfe
Manpages
live-build (7) - the Debian Live tool suite live-config (7) - System Configuration Components live-boot (7) - System Boot Components lb (1) - wrapper for live-build programs lb_clean (1) - Clean build directory lb_config (1) - Create config directory lb_bootstrap (1) - Complete the bootstrap stage lb_chroot (1) - Complete the chroot stage lb_installer (1) - Complete the installer stage lb_binary (1) - Complete the binary stage lb_source (1) - Complete the source stage lb_build (1) - Complete the bootstrap, chroot, installer, binary, and source stages
Seiten
- → Tutorial 1: Grundlegendes Basis-Live-System mit Default-Einstellungen ohne weitere Konfiguration
- → Tutorial 2: Konfiguriertes minimales Live-System