Wie erstelle ich einen bootfähigen USB Stick

Erstellt am: 17/03/2025 - Lesezeit: 4 Minuten

Gelegentlich benötigt man mal einen bootfähigen USB-Stick, auf dem eine Live Version von Linux installiert ist. Bei mir war vor ein paar Tagen solch ein Fall, weil ich eine externe Festplatte falsch in die /etc/fstab eingetragen hatte und das System dann nicht mehr booten wollte.

In einem solchen Fall ist es dann nützlich, wenn man einen USB-Stick hat, auf dem eine Live Version einer Linux Distribution eingerichtet ist.

Ich könnte hier jetzt den einfachen Weg gehen, ein Tool wie rufus herunterladen, das Image ebenfalls von der Distributionsseite herunterladen und fertig ist die Laube. Doch was ist, wenn man nur einen Rechner zur Verfügung hat, der keine grafische Oberfläche installiert hat? Die Terminal-Variante ist recht einfach. Man braucht nur einen Befehl und schon wird das ISO auf den Stick gebraten. Was benötigen wir?

  • einen USB-Stick (32 GB sollten reichen)
  • ein Image eurer bevorzugten Linux-Distribution (in meinem Fall Debian)

Den Stick stecken wir in den USB-Port des Rechners und mittels

sudo lsblk -e7

ermitteln wir den USB-Stick.

Terminal

Gut, in diesem Fall ist es offensichtlich, welcher dieser Einträge hier der USB-Stick ist. :)

Der Stick befindet sich in diesem Fall unter
/dev/sdc bzw. /dev/sdc1 und /dev/sdc2 die Partitionen.

Auf die packen wir nun unsere ISO Datei, die wir uns bspw. direkt von Debian holen.

Nachdem wir das ISO haben, welchseln wir in den Ordner, in dem wir das ISO gespeichert haben und geben folgenden Befehl ins Terminal ein:

sudo dd if=/pfad/zum/image of=/dev/sdc bs=4M status=progress conv=noerror,sync

Bei of=/dev/sdcbitte darauf achten, dass das auch wirklich euer Stick ist und nicht irgendeine andere Partition. Bei Linux gilt: Weg ist auch Weg.

Dann Enter drücken und ab geht die Wilde Lutzi. Der Stick ist fertig, wenn der Prompt wieder zu sehen ist.

Herzlichen Glückwunsch. Ihr habt einen bootfähigen USB-Stick erstellt.

Troubleshooting

Wenn das erstellen zu lange dauert, dann kann es ggf. am befehl selbst liegen.

sudo dd if=/pfad/zum/image of=/dev/sdc bs=4M status=progress conv=noerror,sync

Nehmen wir den Befehl mal auseinander:

Befehlsteil Bedeutung / Erklärung
sudo Führt den Befehl mit Administratorrechten aus
dd Das Kommando zum Kopieren und Konvertieren von Dateien
if=/pfad/zum/iso Input File: die Quelle (ISO-Image zum Kopieren)
of=/dev/sdb Output File: das Zielgerät (hier der USB-Stick, keine Partition)
bs=4M Block Size: Daten werden in 4 Megabyte großen Blöcken kopiert, was schneller ist als kleine Blöcke
status=progress Zeigt während der Ausführung den Fortschritt an
oflag=sync Schreibflag: Daten werden nach jedem Block synchron auf den Stick geschrieben, erhöht die Sicherheit beim Schreiben

Wenn die übertragung zu langsam ist, dann liegt das eventuell am Stick, kann aber auch am Befehl liegen. Damit die Übertragung schnell von statten geht, sollte man einen USB 3 oder besser USB 3.1 Anschluss haben. Der Stick sollte das ebenfalls können. Es ist dabei egal, ob man USB oder USB-C nutzt. Ich verwende in der Regel USB Sticks, die beides können (USB und USB-C)

bs=4M wenn man hier z.b. das M weglässt, werden die Daten quasi einzelnd auf den Stick getragen. Also Byte-weise anstatt MB-weise.

Hier mal die Übertragungsraten:

USB-Standard Maximale Theoretische Datenrate Typische Praktische Transferrate Bemerkung
USB 3.0 (USB 3.1 Gen 1, USB 3.2 Gen 1) 5 Gbit/s (ca. 600 MB/s) ca. 400–500 MB/s Auch als USB 3.1 Gen 1 oder USB 3.2 Gen 1 bezeichnet
USB 3.1 Gen 2 (USB 3.2 Gen 2) 10 Gbit/s (ca. 1.200 MB/s) ca. 800 MB/s Verdoppelt Datenrate gegenüber USB 3.0

Jetzt könnte man auf die Idee kommen, wenn ich ja Übertragungsgeschwindigkeiten von 400 - 500 MB/s habe, dann kann man doch bs= auf 500M setzen um so eine höhrere Übertragungsgeschwindigkeit zu haben.

Aber: Die Angabe von bs=500M bei dd bringt in der Praxis meistens keinen Vorteil und kann sogar negative Effekte haben. Typischerweise empfehlen sich Blockgrößen im Bereich von 1M bis 4M für effizientes Schreiben auf USB-Sticks oder SSDs.

Gründe:

  • Sehr große Blockgrößen wie 500 MB müssen vollständig im Arbeitsspeicher zwischengespeichert werden, was unnötig viel RAM verbraucht und eventuell zu Verlangsamungen führt.

  • Die Hardware (Flash-Speicher, SSD Controller) arbeitet intern mit kleineren Blöcken (z.B. 4K–256K), wodurch sehr große I/O-Blöcke ineffizient werden können.

  • Große Werte können dazu führen, dass dd vor dem Schreiben erst den ganzen Block laden muss (Buffering), was die Performance negativ beeinflusst.

  • Kleine bis mittlere Blockgrößen (z.B. 4M) erzeugen eine gute Balance zwischen Overhead und Datenmenge.

Zusammenfassung:

  • bs=500M führt nicht zu besseren Übertragungsraten, sondern bremst meist wegen hoher RAM-Nutzung
  • Optimale Blockgrößen sind im Bereich einiger Megabytes (typisch 1M bis 8M)
  • Zu kleine Werte wie 512 Bytes führen zu vielen Systemaufrufen und verlangsamen erheblich

Meine Empfehlung daher: bs=4M oder bs=8M sind meistens am sinnvollsten für USB-Sticks oder SSDs.


Profilbild

Christian Rumpf

Ich bin aktiver Berufskraftfahrer in zweiter Generation mit langjähriger Erfahrung im Transportsektor. Auf diesem Blog teile ich meine persönliche Meinung und Erfahrungen.

 

Du hast Fragen, Anregungen oder Kritik? Schreib mir eine E-Mail: ue.golbsnaitsirhc@ofni