Feb. 02 2008
Fortschrittsanzeige für dd
Unter Linux ist das unscheinbare Programm dd ein sehr mächtiges Tool. Damit ist es zum Beispiel möglich, komplette Partitionen zu kopieren, Images zu erstellen oder Festplatten komplett zu löschen. Leider ist es, wenn es ersteinmal seine Arbeit verrichtet, traditionell nicht sehr gesprächig. Will man den aktuellen Fortschritt der bereits kopierten Daten erfahren, hilft der folgende Befehl:
pkill -USR1 dd
Dieser muss unter einer weiteren Konsole aufgerufen werden. Unter der Konsole, unter der dd ausgeführt wurde, erscheint dann der aktuelle Status.
11 Kommentare zu “Fortschrittsanzeige für dd”
Die Lösung mit
pkill -USR1 dd
ist ideal, wenn man sich die Frage nach der Restlaufzeit zu stellen beginnt, nachdem dd schon eine Stunde lang gewerkelt hat.
Weiß man von Anfang an, dass es länger dauert, dann empfiehlt sich ein Weg, der ohne weitere Konsole auskommt. Man bewerkstelligt dies, iindem man das Wachsen des Ausgabeziels mit dem „watch“-Kommando überwacht.
Dies kann z.B. erreicht werden, indem „watch“ mit „du“ oder „ls“ kombiniert wird.
dd if=/dev/input of=/home/user/output.img & watch --interval=1 "du -h /home/user/output.img"
Interval gibt die Zeitspanne zwichen den Aktualisierungen in Sekunden an.
Der Zuwachs läßt sich noch leichter verfolgen, wenn man „–differences“ einbaut:
dd if=/dev/input of=/home/user/output.img & watch –differences –interval=1 „du -h /home/user/output.img“
Dann nämlich werden jeweils die Zeichen invertiert dargestellt, die sich gegenüber der vorherigen Aktualisierung geändert haben. So bekommt man sehr intuitiv einen Eindruck davon, wie schnell der Transfer vonstatten geht – ohne überschlägiges Kopfrechnen.
Wenn dd schon läuft kannst du auch mit
watch –interval=10 „pkill -USR1 dd“
in einer anderen Konsole, eine automatische Anzeige erreichen.
Vielen Dank – Ihr Blogpost hat mir sehr weitergeholfen!
watch –interval=10 pkill -USR1 dd geht irgendwie besser
Toll der verschluckt ein minus zeichen hier..
Die Funktion mit watch läuft sehr gut. Allerdings ist vor dem interval nicht nur ein, sondern zwei Bindestriche. Das es sudo laufen muss, sollte klar sein 😉
Mir hat das hier sehr geholfen. Viielen Dank!
coole Lösung! Danke , hat mir sehr geholfen!
Habe im Ubuntuusers-Wiki auch noch eine nette Möglichkeit mit pv gefunden:
dd if=/dev/sdx | pv | dd of=/dev/sdy
Mit dem Flag -s kann man auch die Größe des Ziels angeben, bei einer 500GByte-Festplatte dann z.B. -s 500G
CTRL+T sendet ein SIGINFO. Dann redet dd mit euch 😉