hal.png

Linux aus der Hosentasche

out of the box

01.04.2001
Es gibt Tausende Tools und Utilities für Linux. "out of the box" pickt sich die Rosinen raus und stellt jeden Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten. Dem Schwerpunktthema dieses Heftes folgend weichen wir diesmal ein wenig von der Regel ab und widmen uns gleich einer ganzen Distribution – die allerdings von einer einzigen Diskette läuft: HAL91.

Mini-Distributionen, auch wenn sie im Schatten ihrer großen Schwestern oft weniger Beachtung finden, sind nützliche Werkzeuge: Von der Spezialdistribution, die von Systemadministratoren gern zur Diagnose und Fehlerbeseitigung eingesetzt wird, bis hin zum nahezu vollständigen Linux-Desktop für ältere Hardware reicht die Bandbreite (siehe auch den Kasten "Andere Mini-Distributionen").

HAL91 ist auf etwas betagtere Rechner spezialisiert und bietet sich als Spielwiese für all diejenigen an, die ihr System gern auch ohne grafische Werkzeuge beherrschen möchten. Auch als Notsystem oder allgemeine Installationsdiskette lässt sich diese Distribution (mit ein wenig Handarbeit) verwenden.

Die Voraussetzungen, um HAL91 laufen zu lassen, fallen entsprechend gering aus: Vom 80386-Prozessor aufwärts und mit mindestens 8 MByte RAM ausgerüstet, lässt sie sich starten. Wichtig war den Entwicklern auch, kein hochformatiertes Diskettenformat zu verwenden, da einige Laufwerke damit Probleme haben.

HAL91 wurde von Øyvind Kolås entwickelt und wird seit Januar 2000 von mir (Christian Perle) weitergepflegt.

Was wird gebraucht?

Auf der HAL91-Homepage http://home.tu-clausthal.de/~incp/hal91/ finden Sie das Disk-Image hal91.img. Für den Fall, dass Sie noch kein Linux auf Ihrem Rechner haben und von DOS/Windows auf installieren müssen, befindet sich dort auch das DOS-Programm rawrite2.exe. (Beide Dateien finden Sie auch auf der Heft-CD.)

Wie wird installiert?

Da wir es mit einem vorgefertigten Disketten-Image zu tun haben, müssen wir nicht mehr tun, als dieses auf eine formatierte Diskette zu schreiben. Wenn Sie bereits über ein lauffähiges Linux verfügen, reicht der folgende (vom Administrator root einzugebende) dd-Aufruf aus:

dd if=hal91.img of=/dev/fd0

Unter DOS/Windows benutzen Sie stattdessen rawrite2.exe:

rawrite2 -f hal91.img -d a:

Start me up

Um von Diskette zu booten, müssen Sie eventuell im BIOS-Setup Ihres Rechners die Boot-Reihenfolge auf A:,C: umstellen. Mit der HAL91-Diskette im Laufwerk starten Sie Ihren Rechner neu. Nach etwa 60 Sekunden ist das kleine Linux geladen und meldet sich mit einem Logo in der Konsole (Abbildung 1). Die Diskette kann übrigens nach dem Booten aus dem Laufwerk entfernt werden, denn das System läuft komplett im Arbeitsspeicher (RAM).

Abbildung 1: Die HAL91-Konsole

Die englische Tastaturbelegung, die nach dem Booten noch aktiv ist, können wir mit dem Kommando loadkeys /tmp/de-nodeadkeys.map auf ein gewohnteres Layout umstellen. Wie bei den "großen" Distributionen stehen auch bei HAL91 mehrere virtuelle Konsolen (erreichbar über ALT-F1 bis ALT-F4) zur Verfügung. Ein Login ist nicht nötig, auf allen Konsolen läuft eine Shell mit root-Rechten.

Gerade bei älteren Rechnern erinnert sich selten jemand daran, welche Hardware eigentlich darin steckt. HAL91 hilft beim Ermitteln vieler Komponenten. So können IDE-Festplatten, ATAPI-CD-ROM-Laufwerke, NE2000-kompatible Netzwerkkarten und diverse PCI-Geräte erkannt und zum Teil genutzt werden.

Als Diagnosewerkzeuge dienen dabei die Kommandos dmesg zum Anzeigen der Kernel-Meldungen und cat /proc/pci, das die PCI-Geräte auflistet. Listing 1 zeigt einen Ausschnitt der Kernel-Meldungen auf einem Toshiba 100CS Notebook.

Listing 1

Ausschnitt der Kernel-Meldungen

hda: TOSHIBA MK1924FCV, 518MB w/128kB Cache, CHS=1053/16/63
 ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
 Floppy drive(s): fd0 is 1.44M
 FDC 0 is an 8272A
 PPP: version 2.2.0 (dynamic channel allocation)

Diese Meldungen verraten uns, dass eine IDE-Festplatte (hda, also das erste Gerät am ersten IDE-Controller) der Marke Toshiba mit 518 MByte, aufgeteilt in 1053 Zylinder, 16 Schreib-/Leseköpfe und 63 Sektoren pro Zylinder gefunden wurde. Die nächste Zeile zeigt, dass nur ein IDE-Controller (ide0) vorhanden ist. Weiterhin existiert ein Diskettenlaufwerk (fd0), das am Controller FDC 0 angeschlossen ist. Die letzte Zeile des Ausschnitts meldet die im Kernel vorhandene Unterstützung für PPP.

Was geht noch?

Zum Klempnern an ext2-Dateisystemen ist das Kommando e2fsck enthalten, mit dem Sie "angeschossene" Linux-Installationen eventuell wiederbeleben können. Sie sollten aber vorher unbedingt die zugehörige Manpage lesen.

Damit Sie auch Festplattenpartionen, Disketten und CD-ROMs mounten können, sind die Kommandos mount und umount enthalten. Unterstützt werden ext2 (Linux), vfat (für lange Dateinamen von Windows 95/98) und iso9660 (für Daten-CDs).

Klein, aber vernetzt

HAL91 kann in begrenztem Umfang auch Kontakt mit seiner Umgebung aufnehmen. Steckt im Rechner eine NE2000-kompatible Netzwerkkarte, lässt sich diese mit den Kommandos ifconfig und route konfigurieren, um mit telnet, ftp oder ncp auf entfernten Rechnern zu arbeiten oder Dateien zu übertragen. Das Programm ncp wurde in einem früheren "out of the box"-Artikel (LinuxUser 08/2000 S. 62 f.) bereits besprochen. Ein Beispiel für die Benutzung von ifconfig und route finden Sie im Shell-Skript init.net im /bin-Verzeichnis.

Ist keine Netzwerkkarte vorhanden, bleibt immer noch der Griff zum Nullmodem-Kabel. Mit dem Shellskript ppp-nullmodem – ebenfalls im /bin-Verzeichnis zu finden – bauen Sie zwischen zwei unter HAL91 laufenden Rechnern eine PPP-Verbindung auf, wobei Sie die im Skript verwendeten IP-Adressen auf einem der beiden Rechner vertauschen müssen, so dass die pppd-Aufrufe folgendermaßen aussehen:

pppd /dev/ttyS1 115200 asyncmap 0 noauth persist local passive nodefaultroute 192.168.0.1:192.168.0.2

auf dem einen und

pppd /dev/ttyS1 115200 asyncmap 0 noauth persist local passive nodefaultroute 192.168.0.2:192.168.0.1

auf dem anderen Rechner.

Ein Editor für alle Fälle

Auch ein Text-Editor ist bei HAL91 mit von der Partie. Hier wurde ganz bewusst der Unix-Standard-Editor vi gewählt. Dieser ist zwar nicht so leicht zu erlernen wie andere Editoren, hat jedoch im Verhältnis zu seinem geringen (Speicher-) Platzbedarf die meisten Funktionen. Eine gute Einführung ist unter http://www.fh-wedel.de/~herbert/html/vi/ zu finden. Experimentieren Sie mit diesem Editor, es lohnt sich!

Unter diesem Aspekt ist HAL91 auch ein geeignetes System für "Trockenübungen" mit Linux. Solange nichts anderes gemountet wird, läuft alles im RAM ab und ist, wie ein bekannter Getränkehersteller es ausdrückte, "unkaputtbar". Endlich kann man mal gefahrlos ausprobieren, was passiert, wenn libc.so.5 gelöscht wird…

Für Fortgeschrittene

Wer dieses Spiel- und Werkzeug einmal entdeckt hat, will möglicherweise eigene Anpassungen vornehmen. HAL91 basiert auf Kernel 2.0.36 und libc 5.3.12. Zum Kompilieren eines eigenen Kernels für diese Distribution orientiert man sich am besten an der existierenden Konfiguration, die auf der Diskette als Datei kconf abgelegt ist. Auf jeden Fall sollte Unterstützung für die "Initial Ramdisk" (initrd) einkompiliert werden.

Zum Austauschen von Programmen müssen Sie den Inhalt der komprimierten Ramdisk (initrd.gz) ändern. Dazu kopieren Sie die Datei auf eine Festplattenpartition und entkomprimieren sie mit gunzip, um sie dann über das Loop-Device zu mounten.

Jetzt können Sie nach Herzenslust in der Datei herumfuhrwerken, Programme löschen oder hinzufügen. Dabei ist darauf zu achten, dass die Programme höchstens gegen libc 5.x, libm 5.x oder libtermcap gelinkt sein dürfen. Außerdem darf die Datei nach dem Entmounten und erneuten Komprimieren mit gzip -9 nicht zu groß für die Diskette sein. Damit wären dann auch die Grenzen für HAL91 gesetzt: Eine grafische Oberfläche mit X11 fällt so den Platzverhältnissen zum Opfer.

Andere Mini-Distributionen

Natürlich gibt es neben HAL91 noch weitere Mini-Linuxe. Besonders hervorzuheben sind dabei drei spezialisierte Exemplare: tomsrtbt ("Tom's Root Boot Disk") ist besonders gut als Rettungssystem zu gebrauchen, bei muLinux wird versucht, möglichst viele Anwendungen auf eine Diskette zu bannen, und fli4l stellt eine komplette ISDN-Router-Lösung auf einer Diskette bereit. Die Bezugsquellen sind http://www.toms.net/rb/home.html für tomsrtbt, http://sunsite.dk/mulinux/ für muLinux und http://www.fli4l.de/ für fli4l.

Glossar

hochformatiertes

Eine Diskette mit mehr als den üblichen 1.44 MByte Kapazität (etwa 1.72 MByte) formatieren.

Disk-Image

Das Abbild einer kompletten Diskette als Datei. Mit geeigneten Programmen lässt sich daraus die Diskette inklusive Bootsektor. Der Bootsektor ist erste Sektor einer Diskette oder eines anderen Datenträgers, der ausführbaren Code zum Starten eines Betriebssystems (Booten) enthalten kann.

dd

Dieses Unix-Kommando dient zum direkten Lesen/Schreiben von blockorientierten Geräten. Die gelesenen Daten lassen sich bei Bedarf im Format konvertieren.

BIOS

Basic Input/Output System. Dieses Minimalsystem sitzt fest im Rechner und sorgt dafür, dass es überhaupt möglich ist, ein Betriebssystem von Diskette oder Festplatte zu laden.

Shell

Einer der wichtigsten Bestandteile jedes Unix-Systems – die kommandozeilengesteuerte Benutzerschnittstelle zum System.

Kernel

Der Betriebssystemkern bildet die Schnittstelle zwischen Hardware und laufenden Prozessen. Außerdem stellt er Multitasking und Speicher-Management zur Verfügung. Das "eigentliche" Linux ist nur der Kernel.

ext2

Das "Second Extended Filesystem" ist das unter Linux bisher am häufigsten eingesetzte Dateisystem. Es versieht Dateien und Verzeichnisse mit Rechten und ordnet sie Eigentümern und Gruppen zu.

Manpage

Die Manpages (kurz für "Manual pages") sind ein Online-Referenzhandbuch für Unix-Kommandos. Sie werden mit man kommando aufgerufen. Aus Platzgründen sind in HAL91 keine Manpages enthalten.

mounten

Unter Unix-Systemen werden Datenträgern keine Laufwerksbuchstaben zugeordnet, sondern sie werden ins Dateisystem eingehängt ("gemountet"). Ein dafür vorgesehenes Verzeichnis (der Mountpoint) dient zum Zugriff auf den Inhalt des Datenträgers.

Shell-Skript

Eine Textdatei mit Kommandos, die automatisch nacheinander von der Shell abgearbeitet werden.

Nullmodem-Kabel

Ein Kabel zum direkten Verbinden von zwei Rechnern über die serielle Schnittstelle. Im Gegensatz zu normalen seriellen Kabeln sind hier die Sende- und Empfangsleitungen über Kreuz geschaltet.

PPP

Das "Point to Point Protocol" verbindet zwei Rechner über eine serielle Leitung (Modem oder Nullmodem) mit dem TCP/IP-Protokoll.

Loop-Device

Mit dem Loop-Device ist es möglich, Dateien wie Partitionen zu mounten. Ein Syntaxbeispiel dazu lautet mount -t ext2 -o loop initrd /mnt – hier wird die Datei initrd als ext2-Dateisystem auf das Verzeichnis /mnt gemountet.

Router

Ein Router dient zum Weiterleiten ("forwarding") von IP-Paketen an bestimmte Ziel-IP-Adressen. Durch seine Routing-Tabelle weiß er, welche Route ein Paket abhängig von der Zieladresse zu nehmen hat.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare