HowTo: Live CD am USB-Stick

Tuesday, 17. February 2009

UPDATE

Für viele Linux Distributionen gibt es einen einfacheren Weg, wie ich festgestellt habe. Alles, was dafür benötigt wird ist UNetbootin, das es für Windows und Linux gibt, sowie eine ISO-Datei der gewünschten Linux-Distribution und natürlich einen USB-Stick oder ein USB-Laufwerk mit genügend Speicher (alle Daten auf dem Laufwerk werden gelöscht, also Vorsicht!).

Somit erspart man sich die Verschwendung von CD/DVD-Rohlingen und kann trotzdem der Lust fröhnen, öfters eine andere Distribution zu testen, ganz einfach vom USB-Stick aus.


Um nicht jedesmal eine neue CD brennen zu müssen, wenn man sich ein neues Linux installieren möchte, kann man sich das Image bequem auf einen USB-Stick ablegen, sofern die Hardware, genauer das BIOS das Booten von einem USB-Gerät unterstützt. Der größte Vorteil dabei ist, dass die Geschwindigkeit enorm zunimmt, im Vergleich zu einer Installation von CD. Hat man eine neuere Version, so braucht man nur die Dateien vmlinuz, initrd.img und sidux.iso ersetzen.

Als Beispiel werde ich den Vorgang anhand der neuesten Sidux Version (2009-01 “Ουρανός“) vorzeigen, alternativ sollte es aber auch mit anderen Linux Distributionen funktionieren. Dafür ist erforderlich, dass man die Gerätedatei des verwendeten USB-Sticks kennt. Diese erhält man, in dem man beispielsweise nach dem Anstecken folgenden Befehl ausführt:

root@linux# tail -n10 /var/log/messages

Die Gerätedatei sollte inetwa wie “sdX” lauten. Ich werde daher sdx im weiteren Verlauf als Platzhalter verwenden.

Zunächst sollte der Stick formatiert und nach Wunsch partitioniert werden. Für unsere Zwecke reicht aber auch eine Standardformatierung mit FAT32 (aka vfat) und einer primären Partition vollkommen aus.

In den nächsten Schritten hängen wir den USB Stick ein, was je nach Wahl der Desktopumgebung per GUI/Dateimanager geschehen kann oder auch alternativ per Konsole mit Rootrechten und kopieren das Image auf den USB Stick in das Verzeichnis sidux, das wir dort erstellen:

root@linux# mkdir /media/usbstick
root@linux# mount /dev/sdX1 /media/usbstick
root@linux# mkdir /media/usbstick/sidux
root@linux# cp sidux-2009-01-ouranos-kde-lite-i386-200902151242.iso /media/usbstick/sidux/sidux.iso

Nun müssen wir uns darum kümmern, dass vom USB-Stick gebootet werden kann. Dazu brauchen wir zuerst die Dateien vmlinuz und initrd.img aus dem ISO-Image. Dies kann wieder wahlweise über den Dateimanager erfolgen oder per Konsole. Wir kopieren diese Dateien in den Ordner sidux und benennen sie um, damit wir uns später ein wenig Tipparbeit ersparen:

root@linux# mkdir /media/iso
root@linux# mount -o loop sidux-2009-01-ouranos-kde-lite-i386-200902151242.iso /media/iso
root@linux# cp /media/iso/boot/vmlinuz-2.6.28-5.slh.3-sidux-686 /media/usbstick/sidux/vmlinuz
root@linux# cp /media/iso/boot/initrd.img-2.6.28-5.slh.3-sidux-686 /media/usbstick/sidux/initrd.img

Außerdem braucht der Bootloader grub einige Dateien, für die wir direkt auf dem USB-Stick einen Ordner namens boot erstellen und  in den wir sie hinein kopieren:

root@linux# mkdir /media/usbstick/boot
root@linux# cp -r /media/iso/boot/grub /media/usbstick/boot/
root@linux# cp /media/iso/boot/message /media/usbstick/boot

Jetzt haben wir alle benötigten Dateien auf unserem USB-Stick. Was jetzt noch fehlt ist die Installation von grub. Auf dem USB-Stick ersetzen wir den Inhalt der Datei “/media/usbstick/boot/grub/menu.lst” zunächst mit folgendem Inhalt:

default 0
timeout 30
color red/black light-red/black
foreground EE0000
background 400000
gfxmenu /boot/message
title sidux Default (aufs)
kernel /sidux/vmlinuz boot=fll quiet vga=791 fromiso=/sidux/sidux.iso
initrd /sidux/initrd.img

Jetzt kann grub auf dem USB-Stick installiert werden:

root@linux# grub-install --root-directory=/media/usbstick /dev/sdX

Sollte es eine Fehlermeldung geben, die inetwa besagt, dass grub nicht installiert werden konnte, weil kein passendes BIOS am Gerät gefunden wurde, so hilft folgende Vorgehensweise. Wir editieren die Datei “/media/usbstick/boot/grub/device.map” und fügen dort folgende Zeile an:

(hd2) /dev/sdX

Jetzt sollte sich auch grub mit dem Befehl von oben installieren lassen und der USB-Stick sollte bereit zum booten sein. Je nach BIOS muss man dann noch die Einstellungen ändern, damit auf das Gerät zugegriffen werden kann.

4 Responses to “HowTo: Live CD am USB-Stick”



  1. axle Says:

    Muss es in der menu.lst nicht heißen:
    ….
    gfxmenu /boot/message
    title sidux Default (aufs)
    kernel ….

    ?



  2. picock Says:

    Stimmt, da hat ein Zeilenumbruch gefehlt. Danke für den Hinweis, ist jetzt ausgebessert 🙂



  3. bigDanny Says:

    Good post, but it seems no longer relevant



  4. javascript Says:

    hm… i am sorry for being a little boring however i think your site would look a little bit better plus a little more easy to the eyes if it had more of a brown feel to it, however that is just me. great article anyhow! 🙂 Best regards.