Admins Freund

Linux für Sysadmins: Das Live-System Grml

22.02.2012
Grml bietet alles, was Admins brauchen. Die effiziente und umfassende Werkzeugsammlung für alle, die auf X11 notfalls verzichten können, spielt oft den Retter in der Not.

Wenn Grml-Projektleiter Michael Prokop (siehe Kasten "Interview mit Michael Prokop") von seinem Baby spricht, gerät er ins Schwärmen: "Ich habe es ins Leben gerufen, als ich noch als Systemadministrator auf der TU Graz arbeitete. Knoppix war ein tolles System für Anwender, aber mir fehlten diverse Tools für meine Arbeit als Admin." Heute, fast acht Jahre später, haben er und sein Team sich einen Ruf erarbeitet: Als das Team hinter Grml [1], dem "MacGyver" unter den Linux-Distributionen.

Bei Grml (ausgesprochen: "Grummel") handelt es sich um eine Live-Distribution, die man direkt von einer CD oder einem USB-Stick bootet und verwendet. Allerdings spielt es in einer anderen Liga als Knoppix oder die Live-Systeme der großen Distributoren: Grml punktet nicht durch grafische Tools und tolle Desktop-Umgebungen, sondern mit seinem Funktionsumfang. Im System findet sich ein kompletter Werkzeugkasten von Anwendungen, mit denen Admins ihren Alltag bestreiten, insbesondere auch Tools für LVM und Mdadm (für das Software-RAID von Linux).

Grml positioniert sich quasi als umfassende Werkbank für alle, die beruflich oder privat an Linux-Systemen schrauben. Kurz vor Weihnachten erschien die Version 2011.12 alias "Knecht Rootrecht" – Grund genug, sich dieses Kleinod für Admins einmal genauer anzuschauen.

Interview mit Michael Prokop

Michael "Mika" Prokop aus Graz/Österreich ist der Kopf des Grml-Projekts und stand LinuxUser Rede und Antwort zu aktuellen Fragen rund um Grml.

LinuxUser: Grml hat sich mittlerweile einen Namen als "Kleinod" für Admins gemacht – was zeichnet das System aus, was macht es gerade für Admins so nützlich?

Michael Prokop: Admins mögen Grml besonders deswegen, weil es von ihresgleichen entwickelt wird. Durch eine Community von sehr erfahrenen Leuten kennen wir nicht nur die Anforderungen, sondern auch die Leiden und Wünsche unserer Zielgruppe. Was Grml auszeichnet, ist also kein einzelnes Feature, sondern die richtige Mixtur aus spezieller Software gepaart mit sehr viel Flexibilität und einer tollen Community.

LU: Grml erschien erstmals 2004, über zwei Jahre nach den ersten Versionen von Knoppix. Was hat dich dazu gebracht, die Entwicklung eines eigenen Live-Systems zu starten?

Mika: Ich habe Grml ins Leben gerufen, als ich noch als Systemadministrator auf der Technischen Universität Graz arbeitete. Knoppix war ein tolles System für Anwender, aber mir fehlten diverse Tools für meine Arbeit als Systemadministrator. Auch stellte kein Live-System meine Vorliebe für Texttools ausreichend zufrieden. Das fängt schon damit an, dass fast alle Live-Systeme in einen grafischen Modus starten, den ich meist gar nicht benötige und der manchmal auch Probleme verursacht. Oft fehlen für meine Arbeit essenzielle Tools wie Mdadm und Lvm, ebenso wie die gute Vorkonfiguration von Software, die ich häufig verwende — Zsh, Vim, Screen/Tmux, …

LU: Wo siehst du die größten Unterschiede zwischen Knoppix und Grml?

Mika: Der Hauptunterschied liegt im völlig unterschiedlichen Fokus: Knoppix zielt auf Endanwender, Grml eher auf professionelle Anwender. Zudem verfolgt Klaus Knopper mit Knoppix einen eher geschlossenen Ansatz, wir positionieren uns dagegen als rundum offenes Projekt. Gerade das Buildsystem namens Grml-live wurde mit dem letzten Release massiv erweitert und verbessert, um Systemadministratoren, aber auch Providern und Dienstleistern die Erstellung angepasster Live-Systemen weiter zu erleichtern.

LU: In der öffentlichen Wahrnehmung bist du "Mr. Grml". Erstellst du die Grml-Releases tatsächlich allein, oder gibt es ein Team, das mit dir an neuen Versionen arbeitet?

Mika: Grml stellt das Resultat von sehr vielen Arbeitsstunden und der Arbeit von vielen Beitragenden dar. Für mich ist die Community ein wichtiger Bestandteil jedes Open-Source-Projekts. Momentan sind wir fünf Grml-Kernentwickler, freuen uns aber immer über helfende Hände!

LU: Welche Funktion von Grml ist deine Lieblingsfunktion?

Mika: Da gibt's keine einzelne Funktion – mir fallen aus dem Stegreif mehr als zehn "Killerfeatures" ein. Wenn ich aber drei davon nennen darf, zählen ganz klar Netscript, die loopback.cfg und Grml-szhrc dazu (siehe Kasten "Grml-Killerfeatures").

LU: Welche neuen Features dürfen Benutzer in Zukunft erwarten?

Mika: Wir arbeiten stark auf die vollständige Integration von Grml-Software in Debian hin. Mit der Verfügbarkeit von grml2usb, grml-rescueboot und grml-debootstrap in Debian sind wir dem schon näher gekommen, an den verbleibenden Paketen arbeiten wir noch. Auf meiner persönlichen Agenda stehen auch noch Ideen für ein besonders elegantes Ausrollen von Debian und dessen Derivaten, aber auch Ansätze, um das Deployment von virtuellen Instanzen in der Cloud zu erleichtern.

LU: Was stört dich am meisten an den aktuellen Versionen, sodass du es gern ändern würdest?

Mika: Wir haben gerade erst mit der aktuellen Release Einiges beseitigt, was mich gestört hat! Wenn ich beispielsweise angepasste Grml-ISOs in einer virtuellen Umgebung boote, weiß ich typischerweise im Voraus nicht, welche IP-Adresse das Grml-System per DHCP bekommt. Der mDNS-Support erlaubt mir jetzt den direkten und unkomplizierten Zugriff auf das Grml-System, ohne dort erst die IP-Adresse auszulesen. Dazu laufen auf meinem System einfach nur Libnss-mdns und der Avahi-Daemon. Der SSH-Server von Grml – mittels der Bootoption ssh=Passwort automatisch gestartet – erledigt dann den Rest, sodass ich mich mittels ssh grml.local auf dem Live-System einloggen kann.

LU: Grml ist berühmt für seine ungewöhnlichen Versions-Codenamen – "Meilenschwein", "Hello-Wien", "Schluchtenscheißer" oder jetzt "Knecht Rootrecht", um nur einige zu nennen. Wer denkt sich die Namen aus, und wie fiel die Entscheidung für dieses Namensschema?

Mika: Viele Namen entstehen ganz einfach beim Blödeln im Team. Mittlerweile bekommen wir auch einige Vorschläge aus der Community oder bei Open-Source-Events und Community-Stammtischen in Graz.

LU: Grml gibt sich in der Standardkonfiguration bieder und zeigt seinem Mantra Linux für Texttool users folgend nur eine Konsole. Gibt es eine Anleitung für unerfahrene Benutzer, die du besonders empfiehlst?

Mika: Aktuelle Releases bieten direkt nach dem Bootvorgang ein textbasiertes Menü an, das besonders häufig gefragte Punkte wie Netzwerkkonfiguration und Start des grafischen Desktops einfach zugänglich macht. Das Programm grml-tips liefert viele praktische Tipps rund um das System. Bleibt dann immer noch etwas unklar, helfen im Regelfall die Projekt-Homepage sowie unsere Community auf der Mailingliste und im IRC (#grml auf Freenode) weiter.

LU: Vielen Dank für das Interview! Wir freuen uns schon auf die nächsten Grml-Releases.

Grml-Killerfeatures

Netscript: Die Bootoption netscript erlaubt das Ausführen von selbst gewählten Skripten beim Starten des Systems. Über dieses Feature lassen sich beispielsweise voll automatisierte Deployments vornehmen. Das Grml-Projekt selbst nutzt die Funktion beispielsweise für Q/A-Tests zur Qualitätssicherung.

Loopback.cfg: Grml lässt sich nicht nur via PXE übers Netzwerk booten und mittels dd auf USB-Sticks installieren: Mittels grml2usb und grml2iso lassen sich standardmäßig aktive Bootoptionen setzen und somit angepasste Live-Systeme basteln, ohne dass man dazu gleich in das Remastering einsteigen muss. Dank des loopback.cfg-Features aber lassen sich all diese ISOs auch direkt von der Festplatte booten. Mit grml-rescueboot und Grub2 beschränkt sich der Aufwand dabei auf das Platzieren eines Grml-ISOs in /boot/grml und den Aufruf von update-grub: Nun steht am Boot-Prompt stets ein Rescue-System zur Verfügung, auch ohne USB-Stick oder CD.

Grml-zshrc: Die spezielle Konfiguration der Z-Shell von Grml ist über das Projekt hinaus bekannt und beliebt.

Drei für alle

Im jüngsten Release kommt Grml in drei Varianten: Eine unterstützt die klassische Intel-Architektur mit 32 Bit, die zweite hat 64-Bit-Support, die dritte (auch auf der Heft-DVD) unterstützt beide Architekturen. Für die architekturspezifischen Versionen fallen Downloads [2] von jeweils rund 350 MByte an, die Kombi-Version ist entsprechend rund doppelt so groß. Allerdings zeigt die Erfahrung, dass eine Grml-CD genau dann nicht zur Hand ist, wenn man sie braucht. Es hat sich als praktisch herausgestellt, Grml auf einen USB-Stick zu überspielen und diesen am Schlüsselbund zu tragen.

Das Dual-Arch-ISO von Grml heißt in der aktuellen Version grml96_2011.12.iso. Um dieses Image bootfähig auf einen USB-Stick zu überspielen, lautet der Befehl:

$ dd if=grml96_2011.12.iso of=/dev/sdb

wobei Sie gegebenenfalls /dev/sdb durch den Device-Namen des USB-Sticks auf Ihrem System ersetzen müssen. Vorsicht: Alle vorhandenen Daten auf dem USB-Stick gehen bei dieser Vorgehensweise unwiederbringlich verloren.

Erste Schritte

Ganz gleich, ob Sie Grml von der Heft-DVD starten oder vorher auf einen USB-Stick überspielen, der Startvorgang verläuft immer gleich. Beim Booten erscheint zunächst der Grml-Splashscreen (Abbildung 1). Er bietet mehr, als man auf den ersten Blick vermuten würde: Durch viele Parameter, die man schon hier dem System zu übergeben kann, lässt sich dessen Verhalten sehr präzise steuern. Eine schnelle Übersicht gibt der Menüpunkt Boot options for grml im Boot-Menü (Abbildung 2).

Abbildung 1: Der Boot-Bildschirm von Grml bietet im ersten Teil jeweils nur die Standard-Optionen an, aber …
Abbildung 2: … hinter Boot options for grml64 verstecken sich viele sehr nützliche Zusatzfeatures.

Neben einem Modus, der direkt nach dem Boot-Vorgang einen SSH-Server startet, gibt es auch den Punkt Load to RAM. Bei diesem lädt der Bootloader das gesamte Image in eine RAM-Disk und verwendet es anschließend von dort. Der Vorteil: Wer von CD bootet, muss sich beim Aufrufen von Programmen häufig gedulden, bis die entsprechenden Binaries vom Medium geladen sind. Liegt das gesamte System im Arbeitsspeicher, entfällt diese Wartezeit. Um die Option zu nutzen, muss allerdings genug Arbeitsspeicher im Rechner stecken.

Im Menü für alternative Konfigurationen findet sich auch der Graphical Mode, der direkt nach dem Systemstart einen X-Server mit dem Window-Manager Fluxbox startet. Dass der Benutzer die grafische Oberfläche (Abbildung 3) über einen entsprechenden Boot-Eintrag ausdrücklich aufrufen muss, hat bei Grml durchaus System: Der Slogan der Distribution lautet Linux for Texttool users, und Grmls Macher gehen davon aus, dass bei der Mehrzahl der Admin-Jobs eine grafische Oberfläche schlicht unnütz ist (Abbildung 4).

Abbildung 3: Als grafische Oberfläche nutzt Grml den Window-Manager Fluxbox.
Abbildung 4: Per Default wirft Grml den Admin auf ein textbasiertes Terminal.

Übrigens beherrscht Grml noch etliche Parameter, die im Boot-Menü erst gar keine Erwähnung finden. Eine komplette Liste aller dieser "Cheatcodes" finden Sie auf der Grml-Website [3].

In der Vorgabe startet Grml mit dem US-Tastatur-Layout, bei dem gegenüber dem deutschen Y und Z vertauscht sind. Zur deutschen Tastaturbelegung wechseln Sie mit dem Befehl loadkeys de.

Systemrettung

Grml liefert alle wichtigen Werkzeuge zur Systemrettung mit, insbesondere chroot leistet hier gute Dienste. Im ersten Schritt gilt es herauszufinden, mit welcher Bezeichnung der Grml-Kernel die Festplatte versehen hat, auf der das zu rettende System liegt.

Befindet sich dieses auf einer LVM2- oder Software-RAID-Partition, starten Sie mit /etc/init.d/lvm2 start beziehungsweise /etc/init.d/mdadm start die benötigten Dienste. Grml sucht dann automatisch nach LVM/Mdadm-Laufwerken und aktiviert sie. Das Finden der passenden Partition kann sich dennoch schwierig gestalten. Sind weder LVM2 noch Mdadm beteiligt, liegt die Partition vermutlich auf der Platte /dev/sda. Der Befehl fdisk -p /dev/sda verschafft Ihnen einen Überblick über die vorhandenen Partitionen.

Haben Sie die richtige Partition gefunden, gilt es diese in das Dateisystem von Grml einzuhängen. Das folgende Beispiel geht davon aus, dass es sich um /dev/sda2 handelt. Dann hängt die Befehlsfolge

# mkdir /mnt/rescue && mount -t auto /dev/sda2 /mnt/rescue

das Dateisystem ein. Mittels Bind-Mount (Listing 1) sorgen Sie nun dafür, dass die Inhalte der Ordner /dev, /sys und /proc im Rettungssystem identisch mit denen von Grml sind.

Listing 1

# mount --bind /dev /mnt/rescue/dev
# mount --bind /proc /mnt/rescue/proc
# mount --bind /sys /mnt/rescue/sys

Schließlich wechseln Sie in eine Art virtuelles System mit den Inhalten des Rettungssystems. Das Kommando chroot /mnt/rescue katapultiert Sie in das zu rettende System, ganz so, als würde es tatsächlich laufen (Abbildung 5). Der Vorteil: Das System hat keinen Boot-Vorgang hinter sich bringen müssen, bei dem üblicherweise die meisten Fehler auftreten.

Abbildung 5: Aus dem laufenden Grml-System heraus erfolgt mittels Chroot der Zugriff auf eine OpenSuse-Partition.

In der Chroot-Umgebung können Sie nun den "Übeltäter" deaktivieren oder auch andere Probleme lösen (Abbildung 6). Im Anschluss starten Sie wie gehabt in das reparierte System und nehmen notwendige weitere Maßnahmen dort direkt vor. Um welche es sich handelt, hängt vom Einzelfall ab. Eine grundsätzliche Erläuterung möglicher Rettungsmaßnahmen für alle gängigen Distributionen würde den Artikel an dieser Stelle aber sprengen.

Abbildung 6: Das Programm vermittelt in kürzester Zeit einen Überblick über jeden Chip, der im Host-System verbaut ist.

Das gewisse Etwas

Unter der Haube werkelt bei Grml ein Snapshot von Debian GNU/Linux, der im Augenblick auf dem testing-Zweig aufsetzt. Im Alltag macht sich das insbesondere dadurch bemerkbar, dass sich in einem laufenden Grml-System die Installation von Debian-Paketen für testing problemlos per Apt-get oder Aptitude bewerkstelligen lässt.

Rund um das Debian-System haben Michael Prokop und sein Team jede Menge nützliche Zusatzfunktionen gebaut: So eignet sich Grml mittlerweile auch, um das vollautomatische Ausrollen ("Deployment") von vielen Systemen gleichzeitig anzustoßen. Mittels des Netscript-Cheatcodes (siehe Kasten "Grml-Killerfeatures") teilen Sie dem Grml-Kernel beim Booten mit, wo er ein entsprechendes Skript findet – um den Rest kümmert Grml sich automatisch. Enthält das Skript alle dazu notwendigen Befehle, lassen sich sich so auf diversen Systemen gleichzeitig die selben Befehle absetzen. Das kann unter anderem dann sehr nützlich sein, wenn es auf den Zielsystemen Änderungen am Partitionslayout vorzunehmen gilt, die sich im laufenden Betrieb nicht erledigen lassen.

Grml gibt sich auch sehr flexibel, wenn es um modifizierte Boot-Medien und ISO-Dateien geht. Oft stören bloß einige Default-Werte beim Boot-Vorgang, nicht aber der eigentliche Funktionsumfang der Distribution. Das Projekt bietet die Tools grml2usb und grml2iso an, um modifizierte Grml-Varianten mit eigenen Default-Boot-Parametern herzustellen. Bei grml2usb lassen sich sogar mehrere Grml-Images auf einen USB-Stick packen und aus dem Boot-Menü starten. Eine ausführliche Anleitung zum Erstellen eines modifizierten USB-Sticks mit grml2usb finden Sie auf der Dokumentationsseite [4].

Die Möglichkeit, Grml als echtes System mit einzelnen Partitionen auf die Festplatte zu installieren, haben die Entwickler mittlerweile verworfen. Wer die Vorzüge von Grml dauerhaft benutzen möchte, greift idealerweise zu Debian – auch, weil Michael Prokop selbst Debian-Entwickler ist und viele Grml-Verbesserungen direkt an die Mutterdistribution zurückfließen. Diverse Grml-Pakete finden sich schon jetzt im Debian-Paketarchiv.

Fazit

Grml lässt Adminherzen höher schlagen. Wer über etwas Know-How im Hinblick auf die Linux-Konsole verfügt, der erhält mit Grml einen sehr mächtigen Werkzeugsatz, um aus dem Tritt geratene Systeme zu retten. Die Distribution punktet dabei vor allem in Hinblick auf ihre geringe Größe und ihre Effizienz. Der Einsatz von Grml muss dabei nicht auf die Rechenzentren der Welt beschränkt bleiben: Wenn die Windows-Installation auf dem Zweit-PC den Geist aufgibt, weil das Dateisystem kaputt ist, springt Grml auch hier ohne Murren ein: Die nötigen Reparaturwerkzeuge für NTFS bringt Grml mit, und ein kaputtes Dateisystem erkennt es beim Mount-Versuch anhand der Marker, die das Dateisystem angibt. 

Infos

[1] Grml-Projekt: http://grml.org

[2] Grml-ISOs: http://grml.org/download/

[3] Grml-Cheatcodes: http://tinyurl.com/lu0312-grml-cheat

[4] Grml2usb-Dokumentation: http://grml.org/grml2usb/

Der Autor

Martin Gerhard Loschwitz arbeitet als Principal Consultant bei Hastexo. Er beschäftigt sich dort intensiv mit Hochverfügbarkeitslösungen. In seiner Freizeit pflegt er den Linux-Cluster-Stack für Debian GNU/Linux.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare