blog · git · desktop · images · contact & privacy · gopher


Die IMHO stressärmste Art, einen Arch-USB-Stick zu erstellen

Es gibt dazu einen Artikel im Arch-Wiki, der aufzeigt, dass das Vorhaben ohnehin schon ziemlich einfach umzusetzen ist. Insbesondere dann, wenn man Arch bereits auf seinem Rechner laufen hat, ist es mit den arch-install-scripts wirklich nicht mehr weit.

Was mich trotzdem gestört hat:

  1. Die Installation ist vermutlich höllisch lahm, weil USB-Sticks halt in der Regel lahm sind. Das war für mich der Showstopper schlechthin.
  2. Man muss aufpassen, dass man sich nicht aus Versehen seine Festplatte oder seinen Bootloader grillt.
  3. Bootet es hinterher wirklich? Dazu muss ich an einen Rechner gehen und es ausprobieren …

Ich habe daher einen anderen Weg gewählt: Ganz normale Installation in einer VM und dann das Festplattenimage mit dd auf den Stick schubsen. Das eliminiert alle Punkte oben – gut, okay, ob der Stick dann wirklich bootet, muss man auch testen. Aber wenn man vorher einen dummen Fehler gemacht hat (zum Beispiel das Root-Device im Bootloader nicht richtig angegeben hat ;-)), ist es viel leichter zu beheben. Überhaupt hat man mehr Freiheiten, kann nebenher den Browser offen lassen und so weiter.

Wie läuft’s ab?

  1. Arch-Installationsmedium herunterladen.
  2. Stick-Image erstellen, hier 2GiB groß:

    $ dd if=/dev/zero of=stick.img bs=1M count=2k
    
  3. Die VM starten und vom Arch-Setup booten:

    $ qemu-system-x86_64 -enable-kvm -cpu host -m 2048 -smp 4 \
        -hda stick.img -cdrom archlinux-2014.04.01-dual.iso -boot d
    
  4. Ganz normal das Setup durchlaufen. Allerdings darauf achten, was im USB-Guide im Wiki erwähnt ist, insbesondere:

    • Überall konsequent UUIDs für die Blockdevices verwenden.
    • Es bietet sich an, das Fallback-Kernel-Image als Standard zu konfigurieren.
  5. Die VM wie gewünscht einrichten.

  6. Am Ende das Image auf den Stick kopieren:

    # dd if=stick.img of=/dev/sdc bs=100k
    

    Bei einem langsamen USB-Stick muss man erst jetzt wirklich warten.