AA_LesKZN_sxc1183621.jpg

© sxc.hu, LesKZN

Chirurgisches Besteck

Live-Werkzeugkasten für die Shell

23.07.2009
Wer ein leistungsfähiges Rettungssystem oder eine komfortable Konsolenumgebung sucht, der wird Grml schnell ins Herz schließen.

Bei Grml handelt es sich um ein Debian-basiertes Live-System für Systemadministratoren und Texttool-User. Die 2003 in Graz/Österreich geborene Distribution ist seit Anfang Juni in der neuen stabilen Version 2009.05 "Lackdose-Allergie" verfügbar. Im Gegensatz zu den meisten anderen Live-Distributionen startet Grml standardmäßig kein X-Window-System (Abbildung 1). Stattdessen stellt es mehrere Konsolen mit einer vorkonfigurierten Z-Shell und weiteren nützlichen Werkzeugen (GNU Screen, Htop, Multitail) zur Verfügung. Die Unterstützung von LVM, Hard- und Software-RAID sowie Cryptsetup-LUKS mit der Paketauswahl von Debian bieten dem Anwender ein mächtiges Rettungssystem. Der Texttool-Benutzer findet in den über 2500 mitgelieferten Softwarepaketen mit Sicherheit auch seinen Lieblingseditor und die Shell seiner Wahl.

Abbildung 1: Der Startbildschirm von Grml nach dem Booten. Das Starten einer grafischen Oberfläche stellt hier nur eine von vielen möglichen Optionen dar.

Grml-Varianten

Wie schon bisher gibt es Grml [1] in drei Geschmacksrichtungen: grml stellt mit einem ISO von rund 700 MByte ein vollständiges Live-System zur Verfügung. Die mit 100 MByte schlankste Variante namens grml-small verzichtet auf jegliche Dokumentation (wie Manpages und Infoseiten) sowie das X-Window-System und bietet nur äußerst essentielle Tools zur Systemadministration. Als Mittelweg zwischen den beiden Varianten positioniert sich das rund 200 MByte große grml-medium. Es bringt sowohl eine grafische Oberfläche als auch Manpages und Infoseiten mit, verfügt aber im Vergleich zum großen Bruder grml über eine schlankere Software-Auswahl.

Alle Varianten basieren auf der selben Kernelversion, sodass weder das Nachrüsten zusätzlicher Kernelmodulen noch das Verwenden einer angepassten initramfs Probleme bereiten. Die drei Grml-Varianten gibt es jeweils als 32- und 64-Bit-Versionen (Grml64), damit auch die Datenrettung von 64-Bit-Systemen ohne Probleme möglich ist.

Windowmanager

Windowmanager gibt es nicht nur für die grafische Oberfläche: Ein beliebtes derartiges Tool für die Konsole ist GNU Screen. Damit nutzen Sie auf einer einzelnen Konsole (aber auch in einem X-Terminal) mehrere Konsolenfenster. Mittels [Strg]+[A],[C] erstellen Sie ein neues Fenster, [Strg]+[A],[A] wechselt zum zuletzt ausgewählten Fenster und mit [Strg]+[A],[ 2] wechseln Sie ins zweite Fenster. Dank Detach und Reattach können Sie die aktuell laufende Screen-Session schlafenlegen ([Strg]+[A],[D]) und – sofern der Rechner weiterläuft – zu einem beliebigen Zeitpunkt wieder fortführen (screen -r).

Ein neu in Grml neu aufgenommenes Konsolentool ist das schlanke Dvtm, das das Konzept des "tiling window management" auf die Konsole bringt. Dabei versucht Dvtm nicht GNU Screen zu ersetzen, sondern ergänzt es sinnvoll, indem es einzelne Screen-Fenster in weitere Unterfenster (in beliebiger Kombination von horizontalen und vertikalen Fenstern) teilt.

Grml beschränkt sich trotz der Verbundenheit zur Konsole aber nicht nur auf diese. Auf Wunsch steht selbstverständlich auch das X-Window-System zur Verfügung (Abbildung 2). Auf der fünften Konsole (tty5, [Alt]+[F5]) ist der User grml angemeldet, mit grml-x $WM starten Sie den angegebenen Windowmanager. Dabei stehen viele kleine und schlanke Varianten zur Auswahl, wie etwa Awesome, Dwm, Fluxbox, Fvwm, Openbox und Ratpoison.

Abbildung 2: Der Desktop der Grml 2009.05 LinuxUser-Edition präsentiert auf alle wichtigen Tools auf einen Blick.

Neuigkeiten

Neben dem schon erwähnten Dvtm bringt Grml 2009.05 weitere 27 neue Pakete mit, unter anderem das schlanke Bildbetrachtungsprogramm Geeqie (den Nachfolger von GQview) und U3-Tool, ein Programm zum Umgang mit U3-USB-Sticks.

Selbstverständlich gibt es auch neue Grml-Features. Unter den neu hinzugekommenen Bootoptionen finden sich bsd und hdt. Hinter bsd steckt ein minimales BSD-Livesystem, basierend auf MirOS BSD. Das ursprünglich auf OpenBSD basierende Betriebssystem enthält mittlerweile aber auch Code von FreeBSD, NetBSD und MicroBSD. Dieses BSD-Livesystem ist speziell für alte Systeme mit nur geringem Arbeitsspeicher interessant, auf denen selbst Grml unter Umständen nicht läuft. Hinter hdt wiederum versteckt sich das Hardware Detection Tool des Syslinux-Projekts. Es ist besonders dann nützlich, wenn man Details zur Hardware eines Rechners braucht, ohne erst ein Linux-System vollständig booten zu müssen.

Auch das Persistency-Feature ist neu in Grml 2009.05. Eine systembedingte Limitierung beim Einsatz von Live-Systemen auf CDs stellt bekannterweise die fehlende direkte Schreibmöglichkeit auf einer CD dar. Das bei Live-Systemen mittlerweile etablierte Overlay-System namens Aufs [2] ermöglicht es, Änderungen am Live-System in den Arbeitsspeicher zu schreiben und dem System somit eine Schreibmöglichkeit vorzuschwindeln. Dank des Persistency-Features können Sie jetzt diese Änderungen über einen Reboot hinaus auf einem Medium (etwa einen USB-Stick) abspeichern.

Um dieses Feature zu nutzen, erstellen Sie beispielsweise auf einem USB-Stick eine Partition mit dem Label live-rw (mkfs.ext3 -L live-rw /dev/sdb1). Mit dem Befehl live-snapshot -d /dev/sdb1 speichern Sie die am Live-System erfolgten Änderungen auf dieser Partition. Um die Modifikationen in ein neu gebootetes System zu übernehmen, starten Sie dieses durch die Eingabe von grml persistent am Bootprompt. Weitere Details zum neuen Persistency-Feature finden Sie bei Interesse im Grml-Wiki [3].

Wie schon bisher lässt sich mittels grml fromiso=/dev/sda1/grml/grml_2009.05.iso das angegebene ISO von einer Festplatte als Live-System verwenden. Das ist besonders dann recht praktisch, wenn man ein Rettungssystem am Rechner selbst zur Verfügung haben möchte. Tritt einmal ein Notfall auftreten, lässt sich durch die Auswahl des jeweiligen Eintrags im Bootloader das Rettungssystem starten.

Dazu muss man nur den Kernel und die initramfs aus dem ISO extrahieren, das ISO als Ganzes auf die Festplatte kopieren und den Bootloader entsprechend anpassen. Bei der Anwendung von fromiso muss man allerdings wissen, auf welchem Device das ISO lagert – nicht immer ist das ganz offensichtlich. Um diesem Problem zu begegnen, gibt es in Grml die neue Bootoption findiso. Sie durchsucht alle relevanten Geräte nach dem angegebenen Image. Ein Konfigurationsbeispiel für Grub zeigt Listing 1.

Listing 1
title grml-Rettungssystem
root (hd0,0)
kernel /grml/linux26 quiet vga=791 lang=de boot=live noeject noprompt findiso=/grml/grml_2009.05.iso toram=grml.squashfs
initrd /grml/initrd.gz

Verwenden Sie bereits Grub2 setzt, können Sie die Loopback-Option einsetzen und sich damit das Extrahieren von Kernel und initramfs sparen (Listing 2). So beschränkt sich ein Update des Rettungssystems auf das Austauschen des ISOs auf der Festplatte und eine Aktualisierung der Grub2-Konfiguration.

Listing 2
menuentry "grml-Rettungssystem" {
  loopback loop (hd0,1)/grml/grml_2009.05.iso
  linux    (loop)/boot/grml/linux26 findiso=/grml/grml_2009.05.iso boot=live quiet vga=791 noeject noprompt
  initrd   (loop)/boot/grml/initrd.gz
}

Zsh

Wie schon bisher kommt in Grml die mächtige und modulare Zsh als interaktive Shell zum Einsatz. Dank ihres guten Setups findet die Grml-Zsh-Konfiguration auch auf Nicht-Grml-Systemen vielfachen Einsatz. Um Updates wie auch die Wartbarkeit der Konfiguration zu vereinfachen, haben die Entwickler /etc/zsh/zshrc und /etc/skel/.zshrc im neuen Grml-Release in eine einzelne Datei vereint. Somit reicht der folgende Befehl, um die Grml-Zsh-Konfiguration auf dem eigenen Rechner zu installieren:

$ wget -O .zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc

Informationen zu den definierten Keybindings, Aliases und Funktionen finden sich in der Grml-Zsh-Referenzkarte auf der Zsh-Webseite von Grml [4].

Neu in der Zsh-Konfiguration ist ein Feature für verzeichnisbasierte Profile. Oft wünscht man sich verschiedene Umgebungsvariablen, abhängig davon, in welchem Kontext man gerade arbeitet. Die Umgebungsvariable DEBEMAIL beispielsweise ist für die Arbeit rund um Debian relevant. Der Autor dieses Artikels verwendet für das Grml-Projekt allerdings eine andere E-Mail-Adresse. Genau das lässt sich über verzeichnisbasierte Profile realisieren. Eine Beispiel zeigt Listing 3. Sobald das Arbeitsverzeichnis der Shell /srv/git/grml ist, setzt die Shell DEBEMAIL auf die Grml-Mailadresse gesetzt. Wenn der Autor allerdings in das Verzeichnis /srv/git/debian wechselt, kommt die Debian-Mailadresse zum Einsatz.

Listing 3
zstyle ':chpwd:profiles:/srv/git/grml(|/|/*)'     profile grml
zstyle ':chpwd:profiles:/srv/git/debian(|/|/*)'   profile debian
# fallback, sofern kein spezielles Profil verwendet wird
export DEBEMAIL=mika@grml.org
chpwd_profile_grml() {
  [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1
  print "chpwd(): Switching to profile: $profile"
  export DEBEMAIL=mika@grml.org
}
chpwd_profile_debian() {
  [[ ${profile} == ${CHPWD_PROFILE} ]] && return 1
  print "chpwd(): Switching to profile: $profile"
  export DEBEMAIL=mika@debian.org
}

Booten von USB

Grml lässt sich nicht nur von CD, sondern ebenso via USB-Stick booten. Die dafür notwendigen Installationsschritte übernimmt das Skript grml2usb. Es wurde im Lauf der letzten Monate von Grund auf neu entwickelt und erlaubt jetzt nicht nur die Verwendung von benutzerspezifischen Bootoptionen, sondern umfasst neuerdings auch Multi-ISO-Support. Das bedeutet, dass man mehrere Grml-ISOs gleichzeitig auf einem USB-Stick installieren und nutzen kann. So lassen sich auf USB-Sticks ab 2 GByte Speicherplatz die 32- und 64-Bit-Version von Grml parallel bootfähig nutzen. So installiert der Befehl:

$ grml2usb grml_2009.05.iso grml64_2009.04.iso /dev/sdb1

beide ISOs auf dem angegebenen Device. Standardmäßig bootet dann die 32-Bit-Version, über Eingabe von grml64 am Bootprompt kommt die 64-Bit-Variante zum Einsatz. Bei der Grml-LinuxUser-Edition auf der Heft-DVD zu dieser Ausgabe nutzen Sie dazu direkt die Images aus dem Verzeichnis /isos.

@:Um die aktuell laufende Grml-CD auf einen USB-Stick zu installieren, genügt ein einfaches:

$ grml2usb /live/image /dev/sdb1

Die Partitionstabelle bleibt dabei unangetastet, muss also bereits korrekt konfiguriert sein. Tipps dazu sowie rund um das Booten von USB finden sich auf der USB-Seite im Grml-Wiki [5] und auf der Grml2usb-Webseite [6], auf der Sie auch die Software finden.

PXE-Boot

Möchten Sie das Live-System lieber über das Netzwerk booten – Stichwort: PXE – dann realisieren Sie das über grml-terminalserver. Mit nur wenigen Abfragen ermöglicht das Tool die Konfiguration und Inbetriebnahme der DHCP-, TFTP- und NFS-Dienste für PXE-Boot. Für die Integration in bereits vorhandene PXE-Infrastrukturen abgestimmte Netboot-Pakete finden sich auf der Terminalserver-Seite im Grml-Wiki [5] zum Download. Geben Sie am Bootprompt von Grml grub ein, landen Sie übrigens im "All-in-One-Boot"-Image von Michael Schierl. Es beinhaltet neben dem Bootloader Grub auch das hervorragende gPXE-Image des Etherboot-Projekts [7], das ein Netzwerk-Booten auch ohne proprietäres PXE-ROM ermöglicht.

Zugriff übers Netz: iSCSI

Für forensische Untersuchungen wie auch die Datenrettung interessant ist die Bootoption readonly, die den Schreibzugriff auf alle Festplatten (/dev/[sh]dX) unterbindet. Dies vermeidet, dass etwaige Mount-Operationen den Inhalt des Dateisystems verändern. Besonders in Kombination mit iSCSI kann man damit Datenrettung und forensische Untersuchungen einfach realisieren. Die Idee dahinter: Sie geben auf einem Rechner mit Netzwerk-Zugang die Festplatte schreibgeschützt frei, um sie auf einem anderen Rechner in Ruhe untersuchen zu können. Ein Beispiel dazu zeigt Listing 4.

Listing 4
# cat > /etc/ietd.conf << EOF
TARGET grml-iscsi:storage.sda
  Lun 0 Path=/dev/sda,Type=fileio,IOMode=ro
  Alias sda.file
  HeaderDigest CRC32C
  DataDigest CRC32C
EOF
# echo "ISCSITARGET_ENABLE=true" > /etc/default/iscsitarget
# /etc/init.d/iscsitarget start

Auf dem Clientsystem verbinden Sie sich nun mit dem iSCSI-Server. Mit open-iscsi funktioniert das wie in Listing 5 gezeigt. Läuft alles erfolgreich, sehen Sie im Syslog bereits den Eintrag zu einem neuen Device, das sich wie eine lokale Festplatte ansprechen lässt. Dank des kostenlosen "Microsoft iSCSI Software Initiator" funktioniert der Zugriff auch von Windows aus. Somit kann man mit Virenscannern unter Windows das System ohne Risiken untersuchen oder mit Spezialsoftware wie EnCase und X-Ways Forensics forensische Maßnahmen durchführen.

Listing 5
# /etc/init.d/open-iscsi start
# iscsiadm --mode discovery --type sendtargets --portal 192.168.10.42 192.168.10.42:3260,1 grml-iscsi:storage.sda
# iscsiadm --mode node --targetname grml-iscsi:storage.sda --portal 192.168.10.42 --login

Remastering

Genügt das Persistency-Feature für die individuelle Anpassung von Software und Konfigurationsdateien Ihren Bedürfnissen noch nicht, dann passen Sie das Live-System mittels Remastering ihren Zwecken an. Das Framework grml-live, das für das Bauen der offiziellen Grml-ISOs zum Einsatz kommt, hilft ebenso gut beim Zusammenstellen der ganz persönlichen Grml-Variante. Das Framework basiert auf FAI (Fully Automatic Installation) und verfolgt damit beim Bau des eigenen Live-Systems einen klassenbasierten Ansatz.

Der Umgang mit grml-live erfordert zwar etwas Einarbeitung, doch wer das System einmal verstanden hat, kann man mit einer einzigen Kommandozeile ein komplettes Live-System bauen. Den Beweis dafür treten die Daily-Snapshots unter [8] an, die täglich aktuelle und automatisiert gebaute Builds aller Grml-Varianten darstellen. Details zum Framework finden sich auf der Grml-live-Webseite [9]. Bevorzugen Sie ein manuelles Remastering, finden Sie die dafür relevanten Informationen auf der Remastering-Webseite im Grml-Wiki [5].

Installation

Bei Gefallen installieren Sie mittels grml2hd aus dem aktuell laufenden System auf der Festplatte. Aufgrund der Basis von Grml empfiehlt sich dies allerdings ausdrücklich nur für Anwender, die mit Debian unstable gut umzugehen wissen. Möchten Sie ein originales Debian installieren, sollten Sie stattdessen auf grml-debootstrap zurückgreifen. Bei diesem Tool handelt es sich um einen Wrapper um das Debian-Tool Debootstrap, das Ihnen lästige Arbeiten wie die Konfiguration und Installation eines Bootloaders abnimmt.

Zu guter Letzt

Weitere Details zum Grml 2009.05 finden Sie in den Changelogs [10]. Dieser Ausgabe von LinuxUser liegt eine Grml-DVD bei, die neben einem Multiboot-Setup von Grml, Grml64 und Juxlala (auf Grml basierendes Live-System für Kinder ab 3 Jahren) im Ordner isos auch alle aktuellen Grml-ISOs beinhaltet (Abbildung 3). Informationen und bekannte Probleme zur Linuxuser-DVD-Ausgabe von Grml notiert das Projekt unter [11].

Abbildung 3: Die LinuxUser-Edition von Grml 2009.05 bringt neben den bootfähigen 32- und 64-Bit-Versionen auch alle ISOs sowie das Grml-Derivat Juxlala mit.

Übrigens: Auf der FrOSCon am 22. und 23. August 2009 in Sankt Augustin gibt es die nächste Gelegenheit, einige Grml-Entwickler live anzutreffen. Das Grml-Team ist dort mit einem Vortrag und einem Stand vertreten und freut sich über jeden Besuch.

Der Autor

Michael Prokop arbeitet als Projektleiter und Hauptentwickler an dem Live-System Grml. Als Debian-Entwickler und Inhaber von Grml Solutions steckt er einen Großteil seiner Arbeit am Rechner in die Debian-Distribution.

Glossar

initramfs

Das "Initial RAM File System" ist der Nachfolger der initrd. Die initramfs besteht aus einem komprimierten Archiv, das die für den Bootvorgang relevante Logik und Dateien beinhaltet.

Infos

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

[2] Aufs (AnotherUnionFS): http://aufs.sourceforge.net

[3] Persistency-Feature: http://wiki.grml.org/doku.php?id=persistency

[4] Zsh-Webseite von Grml: http://grml.org/zsh/

[5] Grml-Wiki: http://wiki.grml.org

[6] Grml2usb: http://grml.org/grml2usb/

[7] Etherboot-Projekte: http://www.etherboot.org

[8] Daily-Snapshots: http://daily.grml.org

[9] Grml-live: http://grml.org/grml-live

[10] Changelogs von Grml: http://grml.org/changelogs/

[11] Infos zur LinuxUser-Edition von Grml: http://wiki.grml.org/doku.php?id=linuxuser0907

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare