Fortschrittsanzeige bei dd

Ich benutze unter Linux den Befehl dd, um Images von Festplattenpartitionen anzulegen. Gibt es eine Möglichkeit, hierbei eine Fortschrittsanzeige zu erhalten, damit man abschätzen kann, wie lange der Vorgang noch dauert?

vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Dr. Harald Bögeholz

Ich benutze unter Linux den Befehl dd, um Images von Festplattenpartitionen anzulegen. Gibt es eine Möglichkeit, hierbei eine Fortschrittsanzeige zu erhalten, damit man abschätzen kann, wie lange der Vorgang noch dauert?

Sie können das beispielsweise erreichen, indem Sie den Datenstrom von dd über eine Pipe durch das Programm Buffer leiten, etwa so:

dd if=/dev/hda1 | buffer -s 64k -S 10m >image

Die Option „-s 64k“ weist Buffer an, die Daten in 64-KByte-Blöcken zu übertragen, „-S 10m“ erzwingt die Ausgabe der bisher übertragenen Datenmenge nach jeweils 10 MByte. Noch einfacher erhalten Sie eine Fortschrittsanzeige, indem Sie statt dd das eigentlich für die Datenrettung gedachte Programm dd_rescue benutzen. Es ist allerdings nicht in allen Distributionen enthalten und hat eine andere Kommandozeilensyntax.

Meist fragt man sich aber erst eine halbe Stunde nach der Eingabe des dd-Befehls ohne Buffer, wie lange es wohl noch dauert. Auch hierfür gibt es eine Lösung: GNU dd gibt die Statistik über die bisher übertragene Datenmenge auf stderr aus, wenn es das Signal SIGUSR1 erhält. Wechseln Sie also auf eine andere Konsole oder in ein anderes Fenster und schicken Sie ihm dieses Signal mit einem Befehl wie

kill -SIGUSR1 Prozess-Id

wobei Sie für Prozess-Id die des dd-Prozesses einsetzen. Das lässt sich auch komfortabel in einem Schritt erledigen:

kill -SIGUSR1 $(pidof dd)

Achtung: Diese Variante schickt das Signal an alle gerade laufenden dd-Prozesse, was vielleicht nicht erwĂĽnscht ist. (bo) (bo)