Eigene Knoppix-CD

Teil 2: Knoppix Remastered

  1. Knoppix Remastered
  2. Teil 2: Knoppix Remastered

Containern gehen

Zwar kann man mit dem Quick-and-Dirty-Remaster viele Anwendungsfälle abdecken, doch spätestens, wenn die eigene Live-CD die 700 MByte nicht übersteigen soll, bleibt nichts anderes übrig, als Platz für die Nutzlast zu schaffen. Hierfür muss der komprimierte Container entpackt werden.

Knoppix-CD: Isolinux

© Archiv

Klassiker: Isolinux ist schnell konfiguriert und robust. Mit Hintergründen lässt sich die Optik des Menüs etwas optimieren.

Knoppix verwendet als Containerformat ein mit cloop komprimiertes ISO-Image, das ein spezielles Kernelmodul verwendet. Nach dem Download des Tar-Archives wird dieses entpackt und mit einem simplen make gebaut, ein make install ist nicht notwendig. Anschließend legen Sie den cloop-Device-Node an:

mknod /dev/cloop b 240 0

Beim Laden des Moduls ist der Pfad zur Containerdatei anzugeben:

insmod cloop.ko file=/pfad/zu/KNOPPIX

Jetzt kann gemountet werden:

mount /dev/cloop /tmp/container

Nicht immer lässt sich das cloop-Modul problemlos laden. Ist das der Fall, können Sie mit dem Tool extract_compressed_fs, welches ebenfalls im cloop-Paket kompiliert wird, ein unkomprimiertes ISO9660-Dateisystem erzeugen und dann dieses mit dem im Kernel enthaltenen Loopback-Treiber mounten. Da es sich auch beim Container um ein read-only-Dateisystem handelt, muss der Inhalt erst kopiert werden:

rsync -av /tmp/container/ build/

Um im Verzeichnis build arbeiten zu können, sollten Sie einige spezielle Dateisysteme mounten und /tmp sowie /root des umgebenden Wirtes verfügbar machen:

mount -t proc none build/proc
mount -o bind /dev build/dev
mount -o bind /tmp build/tmp
mount -o bind /root build/root

Jetzt folgt der Wechsel in den Chroot-Käfig:

LC_ALL=C chroot build

Bildergalerie

Knoppix-CD: knoppix.sh
Galerie
Software:Betriebssysteme:Mac, Linux & Co.:Linux

Das Script knoppix.sh wird beim Start automatisch ausgeführt - hier reichen wenige Zeilen für eine Knoppix-CD, die im lokalen Netz automatisch Daten…

Im Chroot können Sie sich nach Belieben austoben, Software mit apt-get remove löschen (OpenOffice.org ist ein Kandidat, der besonders viel Platz schafft) oder zuvor nach /tmp heruntergeladene Pakete mit dpkg -i installieren. Von einem kompletten apt-get upgrade raten wir indes ab: Knoppix verwendet eine Mischung aus Debian Stable, Testing, Backports und Knoppers eigenen Paketen, die zum Release-Zeitpunkt einer Knoppix-Version immer gut abgestimmt ist, aber mit Sicherheit eine Aktualisierung aller Programme nicht gut verträgt. Sind die Modifikationen beendet, steigen Sie mit exit aus dem Chroot aus und unmounten die Dateisysteme:

umount build/root
umount build/tmp
umount build/dev
umount build/proc

Vergewissern Sie sich mit cat /proc/mounts, dass wirklich nichts mehr eingehängt ist. Ein versehentlich im Container integriertes /proc kann einige Hundert Megabyte okkupieren. Jetzt können Sie den Knoppix-Container neu aufbauen. Hierfür kommt wieder mkisofs zum Einsatz, das resultierende Dateisystem wird jedoch in einer Pipeline komprimiert:

mkisofs -R -U \
-V "KNOPPIX-Container" \
-hide-rr-moved \
-cache-inodes \
-pad build | \
create_compressed_fs \
-f /tmp/KNOPPIX.tmp \
-B 65536 - KNOPPIX

Ältere Versionen von create_compressed_fs benötigen keine Angabe einer temporären Datei (hier mit dem Parameter -f), das "-" kennzeichnet die Standardeingabe, als letztes Argument folgt der Name der erzeugten Containerdatei, hier KNOPPIX im aktuellen Verzeichnis. Sollten Sie create_compressed_fs nicht installiert haben, kopieren Sie einfach das Binary aus dem Cloop-Arbeitsverzeichnis nach /usr/bin oder /usr/local/bin.

Mit dem neuen Container können Sie jetzt wie oben beschrieben ein neues ISO-Image erstellen, das Sie dann in einer virtuellen Umgebung wie VMware oder VirtualBox testen können.

Knoppix-CD: VMware Player

© Archiv

Ideale Testumgebung: Der VMware-Player-Konfigurationsdateien können Sie unter http://dcgrendel.be/vmbuilder erzeugen.

Enthält das eigene Knoppix basierte Linux ausschließlich freie Software und Programme, spricht auch nichts gegen den Weitervertrieb. Bieten Sie die Quellcodes der LGPL- und GPL-lizenzierten Programme an, entfernen Sie Knoppix aus dem Splashscreen und die index.html - und vertreiben Sie das Produkt nicht als Knoppix.

Knoppix mit einem anderen Kernel Soll die eigene Rettungs-CD Treiber für aktuelle SATA-Controller und Netzwerkkarten mitbringen, führt kaum ein Weg am Bau eines eigenen Knoppix-Kernels vorbei. Seit Linux 2.6.16 haben sich viele Schnittstellen des Kernels glücklicherweise kaum verändert, sodass ein Kernel 2.6.24 mit einem ursprünglich mit 2.6.19 gebauten Knoppix wenig Probleme bereitet. Feinarbeit ist lediglich beim HALD (Erkennung von USB-Festplatten), beim Ndiswrapper und seltener bei den Wireless-Tools notwendig. Die Vorgehensweise entspricht weitgehend dem Bauen eines normalen Kernels. Sollten Sie auf einem x86_64-System bauen, müssen Sie in einem i386-Chroot-Käfig arbeiten oder mit einem vorangestellten setarch i386 vortäuschen, unter i686 zu arbeiten:

Knoppix-CD: neuer Kernel

© Archiv

Der eigene Kernel erfordert eine eigene Ramdisk - hier bootet ein Knoppix 5.1.1 mit dem aktualisierten Kernel 2.6.23.

Knoppix-CD: neuer Kernel

  • Entpacken Sie den Tarball des Kernels und kopieren Sie die originale Konfiguration des Knoppix (im Live-System unter /boot) nach .config im entpackten Quellcodeverzeichnis.
  • Laden Sie die benötigten Patches herunter und spielen Sie diese ein. Squashfs lässt sich zum Beispiel als Patch im Kerneltree anbringen: patch -p1 < ../squashfs.../.patch. Etwas aufwändiger ist das Union-Dateisystem aufs. Sie müssen es zunächst via Subversion auschecken und dann einige Dateien manuell verändern. Im ausgecheckten Verzeichnis finden Sie eine kurze Anleitung.
  • Erstellen Sie mit make oldconfig eine neue Kernelkonfiguration auf Basis der neuen Quellen und der alten Konfiguration und gehen Sie anschließend mit make menuconfig die Konfiguration durch. Möglicherweise wollen Sie SATA-Treiber oder Ähnliches statisch einkompilieren oder im alten Kernel noch nicht verfügbare Treiber aktivieren.
  • Jetzt bauen Sie den Kernel mit make. Erstellen Sie anschließend ein Debian-Paket mit make deb-pkg. Dieses können Sie bereits im Chroot-Käfig mit "dpkg -i paket.deb" installieren.
  • Cloop wird separat kompiliert. Das von uns getestete 2.622 suchte die Kernelquellen in /usr/src/linux. Passen Sie den Pfad im Makefile auf das Verzeichnis Ihres Knoppix-Kernels an, um ein passendes Modul zu erhalten.
  • Nun müssen Sie die Initrd entpacken, gegebenenfalls mounten und die dort enthaltenen Module identifizieren und gegen die Module des frisch kompilierten Kernels austauschen. Beim Original-Knoppix 5.1.1 war zudem eine kleine Änderung am Script linuxrc notwendig, damit aufs.ko zuerst auf der Initrd gesucht wurde - nur so kann ein alter und ein neuer Kernel parallel genutzt werden.

Der neue Kernel - auffindbar unter arch/i386/boot/bzImage - und die Initrd kopieren Sie in das Bootverzeichnis (bei Knoppix /boot/isolinux) und fügen entsprechende Einträge in Ihre isolinux.cfg ein.

Beschreibung Website
Syslinux Download
Cloop-Kernelmodul Download
UCK - Ubuntu Customization Kit Download
AUFS - Another UnionFS Download
genext2fs Download
BusyBox Download

Mehr zum Thema

Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
Amazon Blitzangebote
Technik-Deals

Die Highlights der Amazon Blitzangebote - heute mit Weihnachts-Angebote-Woche, Asustor-NAS, 2-TB-SSD von Samsung, Laptop-Kühler und mehr.
Tipps zum leisen PC
Tipps und Tricks

Die Komponenten eines PCs erzeugen Hitze. Lüfter sorgen meist für eine lästige Geräuschkulisse. Mit unseren Tricks wird Ihr PC flüsterleise.
SSD Mythen Tipps
Solid State Disk

SSD-Tuning - was ist wahr, was ist falsch? Wir verraten, welche SSD-Mythen Sie vergessen können und welche Tipps wirklich helfen.
Urlaubsbilder
Fotografieren im Sommer

Von Sommerlicht bis Sonnernuntergang: Unsere 7 Tipps verraten, wie Sie Urlaubsfotos richtig machen und schöne Bilder mit nachhause bringen.