Raspbian unter Kubuntu/Linux mit dd auf SD-Karte schreiben

Raspbian unter Kubuntu/Linux mit dd auf SD-Karte schreiben

Im Gegensatz zu Windows verfügt Linux bereits ab Werk in nahezu jeder Distribution das Werkzeug dd. Dieses Tool ermöglicht bitgenaue Kopien von Datenträgern. Beispielsweise lässt sich so ein vollständiges Abbild von Festplatten erstellen, um diese zu klonen. Wir können damit aber auch Images von Betriebssystemen auf ein externes Medium schreiben, um davon zu booten. Beispielsweise für ein Installationsmedium oder eben eine vorinstallierte Speicherkarte mit Raspbian für den Raspberry Pi.

Vorbereitung

Laufwerk ermitteln

Zunächst müssen wir die Gerätedatei für unser Wechselmedium ermitteln. Hierzu gibt es verschiedene Werkzeuge. Eines der einfachsten ist wohl fdisk, welches mit dem Schalter -l alle verfügbaren Laufwerke inklusive deren Partitionen auflistet:

Im Regelfall sollte dies bereits ausreichen, um den Wechseldatenträger an der Größe zu erkennen. Hier ist /dev/sdb unsere 32GB Speicherkarte. Gerade wenn das System viele Laufwerke besitzt, möchte man vielleicht doch lieber auf Nummer sicher gehen. Hier kann uns beispielsweise lshw helfen, und mit entsprechenden Parametern etwa Hersteller und Modell anzeigen:

sudo lshw -class disk -class storage -short

Hier wird bestätigt, dass /dev/sdb tatsächlich eine Speicherkarte ist. Natürlich gibt es – wie meist unter Linux der Fall – verschiedene Wege zum Ziel. Wir könnten beispielsweise genau so gut parted nutzen und erhalten ebenfalls die benötigten Informationen, nur in einer anderen Form:

Aushängen

Grundsätzlich ist es empfehlenswert, vor derartigen Operationen sicherzustellen, dass der Datenträger ausgehängt ist. Je nach Umgebung werden Wechseldatenträger möglicherweise automatisch vom System gemountet. Dies geschieht mit dem Befehl umount:

sudo umount /dev/sdb

Ist das Laufwerk nicht eingehängt, erscheint dies entsprechend in einer Fehlermeldung. In diesem Falle geschieht schlicht nichts.

Image beschreiben

Nun können wir das gewünschte Abbild mittels dd auf unser Laufwerk schreiben. In diesem Beispiel nutze ich Raspbian. Das komprimierte ZIP-Archiv muss zunächst entpackt werden. Eine sichere und komfortable Methode ist der -p Schalter. Er ermöglicht die Verwendung von Pipes, anstatt ins Dateisystem zu entpacken. Alternativ könnten wir natürlich auch klassisch in zwei Schritten entpacken. dd muss dann mittels if die img-Datei als Quelle übergeben werden. Bei größeren Dateien auf FAT-Dateisystemen kann dies jedoch Probleme verursachen.

unzip -p 2018-03-13-raspbian-stretch-lite.zip | sudo dd of=/dev/sdb bs=4M conf=fsync status=progress

Auf der Konsole wird der Fortschritt ausgegeben:

Erklärung zu den Parametern:

  • of steht für output file, also das Ziel (hier unsere Speicherkarte)
  • bs ist die Blockgröße (Blocksize). 4MB werden von Raspbian empfohlen
  • conv=fsync erzwingt ein Flush für Daten und Metadaten, um sicherzustellen, dass die Daten auf das phsyische Medium geschrieben werden
  • status=progress ist optional und zeigt den Fortschritt an. Für die reine Funktion nicht relevant, aber als Status sinnvoll

Leave a Reply