DD mit Fortschrittsbalken

Um ein Kopie von einem Datenträger wie einer Festplatte, einem USB-Stick, oder einer SD-Karte zu machen oder vice versa, natürlich ein Image zurückzuspielen, empfiehlt sich das Shellprogramm dd.
Nachteil, dd kann schon ziemlich an den Nerven zerren, wenn man nicht weiß, wie weit die Arbeit nun fortgeschritten ist.

Lösung

Ich habe mir aus dem Grund angewöhnt das Programm pv zu installieren, hiermit weiß ich wie weit dd seine Arbeit bis jetzt erledigt hat.

pv ?

Debian beschreibt pv sehr schön:

pv (Pipe Viewer) kann in jede normale Pipeline zwischen zwei Prozessen eingebaut werden. Es wird angezeigt, wie schnell die Daten durchfließen, wie lange es gedauert hat, wieviel bereits abgearbeitet ist und wie lange es schätzungsweise noch dauert.

Dem kann ich nichts weiter hinzufügen, ausser, pv funktioniert nicht nur mit dd ツ

dd und pv

pv -treb Dateiwelcheifwäre | dd of=WOHINGEHTDASIMAGE bs=INPUTOUTPUTBLOCKSIZE

Der Aufruf pv -treb steht für die Zeit welche seit dem Aufruf abgelaufen ist (-t), die Datenrate (-r), bis wann vorrausichtlich der Vorgang dauert (-e) und wieviel Bytes bis Dato durch die Pipe gelaufen sind (-b).

Um das Wurzelverzeichnis von meiner Xbianinstallation auf den USB-Stick zu transferieren ( siehe dazu auch den Artikel RaspberryPI: Xbian auf einen USB-Stick installieren) ist der Aufruf folgender:

root@xbian:/home/xbian# pv -tpreb /dev/mmcblk0p2 | dd of=/dev/sda1 bs=1M
 114MB 0:00:12 [7.67MB/s] [=====>  ]  3% ETA 0:06:23

6 Gedanken zu „DD mit Fortschrittsbalken“

  1. Fortschrittsbalken habe ich nicht, aber dd kann den Status auch selber ausgeben.

    [root@x ~]# dd if=/dev/random of=/usr/null count=2097152 &
    [1] 12886

    [root@x ~]# kill -USR1 12886
    [root@x ~]# 0+2 records in
    0+0 records out
    0 bytes (0 B) copied, 13.9775 s, 0.0 kB/s

    [root@x ~]# kill -USR1 12886
    [root@x ~]# 0+2 records in
    0+0 records out
    0 bytes (0 B) copied, 19.0815 s, 0.0 kB/s

  2. Ich verwende seit ein paar Jahren „dcfldd“ das ist in den Debian Repo’s und auch via MacPort’s verfügbar und gibt ohne weiteres zutun Rückmeldung über den Status… ;-)

    • Danke Dir.

      Paket: dcfldd
      Zustand: nicht installiert
      Version: 1.3.4.1-2.1
      Priorität: optional
      Bereich: admin
      Verwalter: Kenny Duffus
      Architektur: amd64
      Unkomprimierte Größe: 112 k
      Hängt ab von: libc6 (>= 2.7)
      Beschreibung: Erweitertes dd für Forensik und Sicherheit
      Dieses Programm basiert auf dem Programm dd und hat folgende zusätzliche Möglichkeiten:

      * Hashing on-the-fly: dcfldd kann während der Übertragung der eingegebenen Daten Hashfunktionen bilden und damit bei der Gewährleistung der Datenintegrität helfen.
      * Statusausgabe: dcfldd gibt dem Benutzer aktualisierte Informationen über den Fortschritt seiner Arbeit (übertragene Datenmenge und den Zeitpunkt der Fertigstellung).
      * Flexible Löschung von Festplatten: dcfldd kann zum schnellen Löschen von Platten eingesetzt werden. Dabei ist die Verwendung eines bekannten Musters möglich.
      * Überprüfung von Kopieren/Löschen: dcfldd kann überprüfen, ob ein Ziellaufwerk eine bitgenaue Kopie der angegebenen Eingabedatei oder eines Musters ist.
      * Mehrere Ausgaben: dcfldd kann gleichzeitig auf mehrere Dateien oder Datenträger ausgeben.
      * Teilung der Ausgabe: dcfldd kann die Ausgabe auf mehrere Dateien verteilen und hat mehr Optionen als der Befehl split(1).
      * Ausgabe in Pipelines und Protokolle: dcfldd kann alle seine Protokolldaten und Ausgaben an Befehle weitergeben oder sie in Dateien schreiben.
      Homepage: http://dcfldd.sourceforge.net/

      Muss ich mir mal anschauen, glingt wirklich Gut.

Kommentare sind geschlossen.