Instant-Boot-Linux selbst gemacht

Aus LinuxUser 01/2010

Instant-Boot-Linux selbst gemacht

© Thiago Miqueias, sxc.hu

Kernphysik

Manchmal ist weniger mehr – vor allem, wenn Tempo zählt. Das gilt auch für Linux: Oft braucht man nur ganz wenige Funktionen, aber die ganz schnell.

Es bleibt nur noch wenig Zeit bis zum nächsten Termin, der Rechner ist schon heruntergefahren – da fällt es einem siedend heiß ein: Die Adresse, wo der Termin stattfinden soll, stand in einer E-Mail. Bis das Betriebssystem hochfährt und sich die Oberfläche nach der Anmeldung aufbaut, vergehen mal eben drei Minuten. Und in fünf Minuten fährt doch der Bus …

Wie schön wäre jetzt ein System, das in nur wenigen Sekunden einsatzbereit ist und nur die wichtigsten Funktionen bietet. Ein Express-Linux eben, wie es auch manche Board- bzw. BIOS-Hersteller inzwischen integrieren. Allerdings wäre ein BIOS-Tausch sicher etwas übertrieben, geht es doch mit ein wenig Handarbeit auch viel günstiger: Dazu installieren Sie die Mini-Distribution Tiny Core Linux parallel zum schon vorhandenen System auf der Festplatte. Dazu braucht es nicht einmal eine zusätzliche Partition. Das im Folgenden gezeigte System bootet auf einem recht betagten Laptop mit 1-GHz-CPU und 512 MByte RAM in weniger als 25 Sekunden.

Was brauchen Sie dazu? Voraussetzung ist eine schon installierte “große” Distribution wie etwa Fedora, OpenSuse oder Ubuntu, dank der sich auch schon der Boot-Manager Grub (Version 1 – also nicht Ubuntu 9.10) als OS-Dompteur betätigt. Ein wenig Plattenplatz sollte auch noch frei sein – 100 MByte finden sich aber auf fast jedem System noch. Außerdem sollte der Rechner mindestens 256 MByte RAM mitbringen, auch eine Verbindung ins Internet wäre wünschenswert.

Als nächstes brauchen Sie das ISO-Image von Tiny Core Linux [1]. Die folgenden Ausführungen beziehen sich auf die Version 2.4.1, sollten aber auch mit den Folge-Releases funktionieren. Nach dem Download liegt eine Datei namens tinycore_Versionsnummer.iso auf der Festplatte. Wie die Dateiendung schon andeutet, ist Tiny Core Linux in dieser Form als bootfähige CD gedacht, eine Installation auf Festplatte erfordert ein wenig Handarbeit. Zunächst brauchen Sie dazu die Inhalte der CD. Eine Möglichkeit wäre natürlich, das ISO-Image auf einen Rohling zu brennen und die Daten dann auszulesen. Es geht aber auch ohne Rohstoffverschwendung.

Grundinstallation

Die folgenden Kommandos setzen alle jeweils eine Anmeldung als root unter dem künftigen Wirts-Betriebssystem voraus. Mit dem Befehl mount -o loop tinycore_Version.iso /mnt sorgen Sie dafür, dass der Inhalt des ISO-Images im Verzeichnis /mnt auftaucht. Als nächstes legen Sie per mkdir /tce das Verzeichnis an, das zukünftig Tiny Core Linux beherbergen soll. In dieses Verzeichnis kopieren Sie nun mittels der Befehle cp /mnt/boot/bzImage /tce und cp /mnt/boot/tinycore.gz /tce das Grundgerüst von Tiny Core Linux.

Schließlich sorgen Sie noch dafür, dass die frisch installierte Distribution auch im Boot-Manager erscheint. Dazu hängen Sie mit einem beliebigen Editor an die Datei /boot/grub/menu.lst die Zeilen aus Listing 1 an. Die erste Zeile, die mit dem “#” beginnt, stellt nur einen Kommentar dar. Hinter title folgt die frei wählbare Bezeichnung, unter der die Distribution ab sofort im Boot-Menü von Grub erscheint. Die Zeile mit dem Schlüsselwort kernel am Beginn sagt dem Boot-Manager, welchen Kernel er laden soll (hier: /tce/bzImage).

# Tiny-Core
title Tiny Core
    kernel /tce/bzImage tce=sda1 restore=sda1/tce kmap=de-latin1
    initrd /tce/tinycore.gz

Alle weiteren Angaben nach dem Kernel stellen Parameter dar, die Grub dem Linux-System beim Booten übergibt: Die Anweisung tce=hda1 instruiert das Tiny-Core-System, installierte Pakete und gesicherte Benutzereinstellungen von der Partition hda1 zu laden. Dort sucht es im Verzeichnis tce, also genau dem Verzeichnis, in das Sie eben die Dateien kopiert haben. Falls Ihr System nicht auf der ersten Partition der ersten Festplatte liegt (sda1), müssen Sie diesen Eintrag entsprechend anpassen.

Der Parameter restore benennt das Gerät und gegebenenfalls auch das Verzeichnis, in dem Tiny Core Linux die benutzerspezifischen Einstellungen ablegt. Dort erzeugt Tiny Core beim jedem Herunterfahren eine Datei namens mydata.tgz. Diese Datei stellt nichts anderes als ein komprimiertes Tar-Archiv des Benutzerverzeichnisses /home/tc dar. Bei tc handelt es sich übrigens um die Benutzerkennung, unter der die grafische Oberfläche und die Anwendungen laufen. Bei jedem Hochfahren entpackt das System das Archiv mydata.tgz wieder, sodass danach alle Einstellungen wieder auf dem alten Stand sind. In unserem Fall haben Sie das Benutzerarchiv mit in das eben schon erwähnte Verzeichnis tce gelegt.

Der Parameter kmap gibt an, dass Sie mit einer deutschen Tastaturbelegung arbeiten wollen. Ohne diesen Parameter verwendet Tiny Core Linux das US-amerikanische Tastaturlayout. Die letzte Zeile des Ausschnitts aus der menu.lst legt schließlich fest, wo sich das Abbild der Initial RAM Disk findet. In dieser liegt das Root-Dateisystem von Tiny Core Linux – also alle Verzeichnisse, aus denen das Basissystem besteht. Dort finden Sie dann auch Standardbefehle wie beispielsweise ls, mv, cp oder rm. All das liest Grub beim Booten in eine RAM-Disk, von wo das System dann auch läuft – anders als bei einer herkömmlichen Distribution, wo das Basis-System auf der Festplatte residiert. Die RAM-Disk hat den entscheidenden Vorteil, dass Zugriffe darauf sehr schnell erfolgen.

Der erste Start

Jetzt ist es Zeit, einen ersten Test zu fahren: Starten Sie Ihr Linux-System neu. Im Bootmanager taucht nun der neue Eintrag Tiny Core auf, den Sie auswählen. Nach einigen Sekunden erscheint allerdings statt des erwarteten Desktops nur eine Fehlermeldung auf der Konsole und dann der Prompt. Das liegt daran, dass Tiny Core die Datei /home/tc/.xsession nicht findet, die unter anderem die Bildschirmeinstellungen enthält, denn noch gibt es das Archiv mydata.tgz nicht. Abhilfe schaffen Sie schnell, indem Sie das Kommando xsetup aufrufen (Abbildung 1) und im Menü die richtige Auflösung einstellen. Dann verlassen Sie xsetup wieder (wobei Tiny Core die Datei .xsession schreibt) und starten den Desktop mit startx (Abbildung 2).

Abbildung 1: Mit dem Konsolenwerkzeug Xsetup stellen Sie Bildschirmauflösung und Maustyp ein.

Abbildung 1: Mit dem Konsolenwerkzeug Xsetup stellen Sie Bildschirmauflösung und Maustyp ein.

Abbildung 2: Der Desktop von Tiny Core Linux – hier schon mit installierten Anwendungen im Launchpad.

Abbildung 2: Der Desktop von Tiny Core Linux – hier schon mit installierten Anwendungen im Launchpad.

Für die weiteren Schritte benötigen Sie eine funktionierende Netzwerkverbindung. Sofern der Rechner über Ethernet und einen Router den Weg ins Internet findet und ein DHCP-Server im Netz werkelt, sollte nach dem Booten das Netzwerk bereits funktionieren. Gibt es keinen DHCP-Server oder möchten Sie die IP-Adresse lieber von Hand vergeben, dann rufen Sie über das Icon mit dem Schraubendreher das Control Panel aus dem Launchpad auf und starten darin Netcardconfig. Es erscheint ein Dialog, in den Sie alle notwendigen Daten eingeben. Falls Sie sich nur via WLAN oder DSL/PPPoE mit dem Internet verbinden können, finden sie im Kasten “Anpassung per WLAN oder DSL” nähere Informationen.

Anpassung per WLAN oder DSL

Tiny Core Linux setzt zum Installieren von Paketen wie viele andere Distributionen eine funktionierende Internetverbindung voraus. Problematisch wird es, wenn Sie ausschließlich über WLAN oder ein DSL-Modem ins Internet gelangen: Die Grundinstallation enthält die dafür notwendige Software nicht – diese liegt in Paketen, die Sie über eine Onlineverbindung nachinstalliert müssen. Die Katze beißt sich in den Schwanz, aus Tiny Core heraus kommen Sie hier nicht weiter. Das gleiche gilt für den NDIS-Wrapper.

Einen Ausweg bietet der direkte Zugriff auf das Paketrepository [2] von einem anderen System mit funktionierender Internetverbindung, um die Pakete manuell herunterzuladen. Die “Installation” erfolgt dann einfach durch Einkopieren der Paketdateien in das Verzeichnis /tce. Dabei müssen Sie allerdings selbst für das Auflösen von Paketabhängigkeiten sorgen. Die finden Sie über die Paketbeschreibung im Repository leicht heraus. Zum TCZ-Paket ndiswrapper.tczm beispielsweise finden Sie im Repository neben dem genannten Namen noch folgende Dateien:

  • ndiswrapper.tczm.info – die Beschreibung des Paketes
  • ndiswrapper.tczm.list – eine Liste der Dateien im Paket
  • ndiswrapper.tczm.dep – eine Liste der Paketabhängigkeiten
  • ndiswrapper.tczm.md5.txt – die MD5-Prüfsumme

Fehlt die Datei mit der Endung .dep, besitzt das Paket keinerlei Abhängigkeiten. Ansonsten müssen Sie auch alle Pakete installieren, die in der .dep-Datei stehen. Beim Installieren schreibt der Appbrowser übrigens alle genannten Dateien außer *.list und *.info in das PPR (Erklärung siehe Abschnitt “Paketinstallation”). Eine englischsprachige Anleitung zum Konfigurieren des WLAN-Adapters finden Sie unter [3]. Für den Zugriff über ein DSL-Modem brauchen Sie das Paket pppd.tczl. Dann konfigurieren Sie den DSL-Zugang wie gewohnt über pppoeconf und verbinden mit pon.

Nun haben Sie zwar das Betriebssystem installiert, aber noch keine Anwendungspakete. Auch die Tastaturbelegung bleibt trotz des anderslautenden Bootparameters noch englisch – warum, das erklärt der Abschnitt “Deutsches Tastaturlayout”. Tiny Core folgt dem Grundprinzip, das Ausgangssystem so klein wie möglich zu halten und alle anderen Teile individuell und modular nachzuladen. Der Weg dahin führt über den sogenannten App Browser (Abbildung 3), den Sie über das Zahnradsymbol im Launchpad starten. Er stellt eine Verbindung zum Tiny-Core-Webserver her, von wo er die gewünschten Anwendungspakete herunterlädt. Diese landen dann in einem Verzeichnis auf der Festplatte, von wo aus das System die Anwendungen beim Hochfahren des Systems lädt und in die RAM-Disk entpackt.

Abbildung 3: Mit dem Appbrowser installieren Sie weitere Pakete nach.

Abbildung 3: Mit dem Appbrowser installieren Sie weitere Pakete nach.

Paketinstallation

Tiny Core unterscheidet beim Einrichten von Paketen zwischen den beiden Verfahren Installieren (“install”) und Einhängen (“mount”). Beim Install lädt das System während des Hochfahrens aus dem sogenannten Persistent Personal Repository (PPR) den Inhalt des Pakets in die RAM-Disk. Beim PPR handelt es sich um das Verzeichnis, dass Sie eingangs angelegt haben und das Tiny Core beim Booten auf der angegebenen Partition sucht (Parameter tce=...).

Da die Pakete in die RAM-Disk geladen werden, resultiert daraus natürlich ein recht hoher Bedarf an Arbeitsspeicher – dafür geht das Ganze sehr schnell. Nach dem Hochfahren des Systems dauert es beispielsweise nach dem Klick auf das Firefox-Icon nur eine Sekunde, bis der Browser startet. Im Gegensatz dazu landen die Pakete beim Mounten aus dem PPR nicht in der RAM-Disk, sondern werdem per loop-mount eingebunden. Das schont den Arbeitsspeicher, aber dafür ist die Anzahl der so nutzbaren Pakete begrenzt.

Die gute Nachricht: Beide Methoden lassen sich beliebig mischen. Anwendungen, bei denen es auf einen schnellen Start ankommt, kommen bevorzugt mit der Install-Methode zum Einsatz. Programme, die man nur selten nutzt, verwendet man speicherschonender über die Mount-Methode. Auf Rechnern mit nur wenig RAM bietet es sich natürlich an, alle Pakete zu mounten. Tiny Core Linux merkt sich in der Datei tcz2ram.lst im PPR, welche Pakete es in die RAM-Disk laden sollen.

Deutsches Tastaturlayout

Die ISO-Datei, aus deren Inhalten die Installation bislang besteht, enthält keinerlei Pakete – nicht einmal jenes, das die deutsche Tastaturbelegung (und andere) implementiert. Tiny Core wertet den oben erwähnten Boot-Parameter zwar aus, aber mangels installierter Tastaturtabelle bleibt er bislang wirkungslos. Starten Sie nun den Appbrowser, indem Sie unten im Launchpad das Icon mit den zwei Zahnrädern anklicken. Im Programm selbst verbinden Sie sich dann mit Connect zum Paket-Repository auf der Tiny-Core-Website. Der Appbrowser lädt daraufhin die Liste der verfügbaren Pakete und zeigt sie im Fenster an.

Als erstes suchen Sie nun das Paket kmaps, das die schon erwähnten Tastaturtabellen enthält, und markieren es durch Anklicken. Dann wählen Sie das Paket firefox an, denn das Schnellstart-Linux soll ja schließlich zum Surfen im Internet dienen. Klicken Sie nun auf Install oder Mount klicken, lädt der Appbrowser die gewünschten Pakete herunter und installiert sie mit der gewünschten Methode. Um Abhängigkeiten zu anderen Paketen müssen Sie sich keine Gedanken machen – der Appbrowser löst diese automatisch auf und installiert die notwendigen Pakete mit.

Um die vorgenommenen Änderungen anzuwenden, empfiehlt sich ein Reboot. Dazu klicken Sie mit der rechten Maustaste auf den Desktop-Hintergrund und wählen Logout. Bitte beachten Sie, dass Sie den Haken bei der Option Backup (Abbildung 4) setzen müssen, damit Tiny Core die gerade vorgenommenen Änderungen auch sichert.

Abbildung 4: Beim Abmelden wählen Sie aus, ob Tiny Core die Änderungen sichern soll.

Abbildung 4: Beim Abmelden wählen Sie aus, ob Tiny Core die Änderungen sichern soll.

Fein-Tuning

In manchen Anwendungen funktionieren trotz korrekt eingerichteter Tastaturbelegung bestimmte Tasten nicht wie erwartet – das betrifft bei Firefox beispielsweise den Klammeraffen “@”. Etwas Handarbeit an der Datei .xsession behebt dieses Manko: Öffnen Sie die Datei in einem beliebigen Editor und fügen Sie folgende Zeile ein:

sleep 3 && xmodmap -e "clear Mod4" -e "add Mod5 = Mode_switch" &

Sie muss direkt vor dem Eintrag "$DESKTOP" 2>/tmp/wm_errors & stehen. Nach einem Neustart sollten dann auch die bisher fehlenden Zeichen funktionieren.

Sicherheitsbewusste Naturen werden anmerken, dass die grafische Oberfläche von Tiny Core Linux ohne Anmeldung am System lädt und dass jederzeit über das Kontext-Menü eine Root-Shell zur Verfügung steht. Für eine Live-CD stell das zwar die übliche Vorgehensweise dar, sie entspricht aber sicher nicht gängigen Sicherheitsstandards bei einer Installation auf Festplatte.

Glücklicherweise bietet Tiny Core Linux aber auch hier bereits eine Lösung: Ergänzen Sie in der Datei /boot/Grub/menu.lst die Kernel-Zeile durch den Parameter noautologin. Nun verlangt Tiny Core Linux vor dem Starten der grafischen Oberfläche eine Anmeldung. Die Benutzerkennung dafür lautet tc, ein Passwort ist zunächst nicht gesetzt. Das setzen Sie in Tiny Core ganz normal mit dem Befehl passwd, müssen aber noch dafür sorgen, dass es auch den nächsten Reboot “überlebt” – sprich: beim Herunterfahren in der mydata.tgz gesichert wird. Dazu klicken Sie zunächst mit der rechten Maustaste auf den Desktop und dann auf Tools | Add to Filetool. Dann geben Sie unten bei Filename die Bezeichnung /etc/shadow ein und klicken noch einmal auf OK (Abbildung 5).

Abbildung 5: Im     <code srcset=

Filetool legen Sie fest, welche Dateien Tiny Core zusätzlich in mydata.tgz aufnimmt.” width=”300″ height=”225″ /> Abbildung 5: Im Filetool legen Sie fest, welche Dateien Tiny Core zusätzlich in mydata.tgz aufnimmt.

Je nach Lust und Laune stellen Sie das System nun mit weiteren Paketen individuell zusammen. Die Webseite von Tiny Core Linux ([1]) zeigt noch viele Möglichkeiten der Optimierung.

Initial RAM Disk

Bei der initrd handelt es sich um das Abbild eines reduzierten Root-Dateisystems, das zunächst in eine RAM-Disk geladen und temporär genutzt wird. Die initrd bringt in der Regel alle Werkzeuge mit, die man braucht, um die eingesetzte Hardware zu erkennen, die nötigen Kernelmodule zu laden und anderes mehr.

loop-mount

Unter Linux lassen sich nicht nur Speichergeräte einhängen, sondern auch Dateien, wie etwa das Abbild eines Datenträgers. Die Bezeichnung loop-mount rührt daher, dass für diese Mounts automatisch virtuelle Gerätedateien angelegt werden, die /dev/loop0, /dev/loop1 etc. heißen.

LinuxUser 01/2010 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

1 Kommentar
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Lirex
16 Jahre her

<<< Voraussetzung ist eine schon installierte "große" Distribution wie etwa Fedora, OpenSuse oder Ubuntu, dank der sich auch schon der Boot-Manager Grub (Version 1 – also nicht Ubuntu 9.10) als OS-Dompteur betätigt. <<<< Schön wäre es auch zu erfahren wie man es unter Grub2 einbinden kann.

Nach oben