QVINTVS · SCRIBET

Grml auf einem USB-Stick plus persistence

Die Systemadministrator-Distribution Grml 2011.05 “Just Mari” ist erschienen und jetzt möchte ich beschreiben, wie man das Grml-ISO auf einen USB-Stick packt und außerdem sicherstellt, dass erstellte Dateien und Mofikationen auch nach einem Neustart erhalten bleiben (persistency).

Prärequisiten

Ein USB-Stick von zumindest 4GB. Es geht wohl auch weniger, aber so ist es einfacher.

Los geht’s

Zunächst muss man sich das Grml-ISO von grml.org herunterladen; ich empfehle die 32-Bit Version, nicht, weil ich ein 64-Bit-Skeptiker wäre (ganz im Gegenteil, mein Haupt-Arch-Linux-System läuft wunderbar mit 64 Bit), sondern weil Grml als Live-Distribution an allen möglichen Rechnern gestarten werden können muss; nicht jeder Rechner ist 64-Bit-fähig, gerade bei älteren, die immer noch genug Leute zuhause stehen haben, findet man das nicht. Da ein 32-Bit-System auch auf einer 64-Bit-Architektur problemlos bootet, erscheint mir das im Moment noch schlauer. Stichwort Universalität.

Partitionierung

Dann beginnt die eigentliche Arbeit. Nach dem Einstecken des USB-Sticks ruft man ein beliebiges Paritionierungsprogramm auf (ich verwende wie üblich GParted) und schaut sich an, was das Grml-Wiki so über persistency erzählt. Da wird folgendes Partitionslayout vorgeschlagen:

/dev/sdX1 FAT16 1,3GB datastore | Für Windows-Daten
/dev/sdX2 ext3 2GB grml         | Haupt-Grml-Partition
/dev/sdX3 (erweiterte Partition)
  /dev/sdX5 ext3 200MB home-rw  | für persistente Daten im /home-Verzeichnis
  /dev/sdX6 ext3 400MB live-rw  | für persistente Daten in anderen Verzeichnissen
  /dev/sdX7 ext3 100MB GRMLCFG  | Konfiguration von Grml

Ich habe mich weitestgehend an dieses Layout gehalten, lediglich halte ich FAT16 für übertrieben, Windows 95 gehört nur noch ausgetauscht. Ich habe die erste Partition als FAT32 formatiert, das ist zwar immer noch ein steinaltes Dateisystem, aber immer noch am besten geeignet für den Datenaustausch zwischen Linux und Windows. Ansonsten habe ich noch ein paar unwesentliche Änderungen an den Partitionsgrößen vorgenommen, die hier aber nicht zur Debatte stehen sollen. Zur Sicherheit habe ich auch noch vorher eine komplett neue Partitionstabelle erstellt (in GParted: Laufwerk → Partitionstabelle erstellen).
Wichtiger Hinweis: Wenn man mit GParted paritioniert, bitte darauf achten, die Partitionsgröße am Zylinder festzumachen. Es gibt immer noch genug Programme, die es gar nicht mögen, wenn eine Partition nicht am Zylinder endet. Führt zwar zu Platzverschwendung von ein paar Mebibyte, aber das ist auch nicht weltbewegend.

Zum Schluss sollte das Layout so aussehen:

Bild

Bitte unter allen Umständen die Namensgebung der Partitionen beachten — an der macht Grml nämlich fest ob und wenn ja, wo es persistente Daten speichern soll.

Nach dem Anwenden der Operationen muss noch die grml-Partition als die bootbare markiert werden, dazu einen Rechtsklick auf diese Partition ausführen, “Markierungen bearbeiten” anwählen und den Haken bei boot setzen.

Auf den USB-Stick schreiben

So, wie bekommt man nun die GRML-ISO auf den USB-Stick? Es gibt grundsätzlich mehrere Möglichkeiten (siehe dazu das Grml-Wiki), aber die Verwendung des Grml-eigenen Programms grml2usb macht die Sache wirklich kinderleicht. Als Arch-Nutzer installiert man sich das Paket kurzerhand aus dem AUR:

$ aurget -S grml2usb

Danach steht es direkt zur Verfügung. Folgender Aufruf schreibt nun das Image auf den USB-Stick, wobei /dev/sdd2 durch den Einhängepunkt des USB-Sticks plus die Partitionsnummer der grml-Partition und /home/quintus/Downloads/ISOs/grml_2011.05.iso durch den Pfad zum Grml-ISO ersetzt werden müssen:

√ quintus@hades => ~
$ sudo grml2usb --bootoptions="persistent" /home/quintus/Downloads/ISOs/grml_2011.05.iso /dev/sdd2
Executing grml2usb version 0.9.31
Execution failed: Partition /dev/sdd2 does not contain a FAT16 filesystem. (Use --fat16 or run mkfs.vfat /dev/sdd2)
√ quintus@hades => ~
$ 

Hm, da ist wohl was falsch. Laut Wiki sollte Grml eine ext3-Partition bekommen, aber offenbar sieht das anders aus. Also noch mal GParted raus und die grml-Partition als FAT32 formatiert, es muss ja nicht gleich FAT16 sein. Mal schauen. Und siehe da:

√ quintus@hades => ~
$ sudo grml2usb --bootoptions="persistent" /home/quintus/Downloads/ISOs/grml_2011.05.iso /dev/sdd2
Executing grml2usb version 0.9.31
Using ISO /home/quintus/Downloads/ISOs/grml_2011.05.iso
mount: warning: /tmp/grml2usbWWya30 seems to be mounted read-only.
Identified grml flavour "grml".
Copying files. This might take a while....
Installing default MBR
Installing syslinux as bootloader
Note: grml flavour grml was installed as the default booting system.
Note: you can boot flavour grml using 'grml' on the commandline.
Finished execution of grml2usb (0.9.31). Have fun with your grml system.
√ quintus@hades => ~
$ 

Perfekt. Der Grml-Stick ist damit einsatzbereit.

Test

Zum Testen benötigt man nun einen Computer, dessen BIOS fähig ist, von USB zu booten (sollte jeder halbwegs moderne Rechner können). Eventuell muss man im BIOS erst noch die Bootreihenfolge ändern oder eine Taste zur Geräteauswahl betätigen.
Nachdem man den Grml-Bootloader begutachtet hat, wählt man den Standardeintrag an und lässt sich bis Grmls Begrüßungs-“Fenster” geleiten. Ein Druck von [D] wählt deutsches Tastaturlayout. Versuchen wir doch nun einmal, X zu starten, indem wir [X] gefolgt von [F] (für Fluxbox) drücken.
Wenn das bei euch klappt, dann Glückwunsch, bei mir lief das nicht. X.org beschwerte sich, dass /home/grml/.xinitrc nicht da war. Abhilfe schaffte folgendes:

# mkdir /home/grml
# chown -R grml /home/grml

Danach ließ sich grml-x problemlos über das Grml-Fenster (zu dem man übrigens mit exit wieder zurückgelangt) starten. Nur leider mag X dann noch nicht das deutsche Tastaturlayout annehmen; hierzu öffnet man eine Shell und gibt

$ grml-lang de

ein (Tipp: Der Bindestrich ist auf der US-amerikanischen Tastatur da, wo bei uns der Grave- und Acut-Akzent sitzen, oder für Programmierer da, wo der Backtick ` ist ;-)).

Abspeichern ließ sich diese Einstellungen leider nicht persistent, aber das eine Kommando tut auch nicht weh. Ansonsten ist Grml wie üblich klasse, alles nötige an Bord.

Ach so, eins noch: Wer wie ich gerne Ruby, und zwar in der Version 1.9, verwendet, dem sei der Aufruf von update-alternatives dringend empfohlen:

# update-alternatives --config ruby

Da dann Ruby 1.9.1 auswählen, das in Wirklichkeit Ruby 1.9.2 ist (das hängt mit der Library-Version zusammen) und man kann jetzt wirklich loslegen mit dem Administrieren.

Valete.