Kategorie
GNU/Linux
Veröffentlicht
Lesezeit
3 Minuten
Diskussion
8 Kommentare

GNU/Linux

dd aus Coreutils 8.24 kennt jetzt eine Fortschrittsanzeige

dd aus Coreutils 8.24 kennt endlich eine Fortschrittsanzeige – mit status=progress oder weiterhin mit dem Pipe Viewer.

Wer gerne und viel mit dem Raspberry Pi arbeitet, schreibt mit Sicherheit des Öfteren Images mittels dd auf eine SD-Karte. Bei kleineren Systemen und einem USB-3.0-tauglichen Kartenleser dauert der Datentransfer in der Regel nur wenige Momente. Beim Schreiben größerer Images mit einem einfachen USB-2.0-Kartenleser kann der Vorgang jedoch schnell 15 Minuten oder länger dauern. Da dd bislang keine Statusausgabe bot, mussten Ungeduldige zur Anzeige des Fortschritts entweder ein pkill -USR1 -x dd an den Prozess senden oder Tools wie pv oder progress verwenden. Mit der frisch veröffentlichten Version 8.24 der Coreutils – zu diesem Paket gehört auch dd – erhält das Kommandozeilenwerkzeug nun endlich eine native Fortschrittsanzeige.

dd mit Fortschrittsanzeige

Die entsprechende Version der Coreutils ist bislang nur in wenigen Linux-Distributionen enthalten. Arch Linux und dessen Derivate liefern sie in der Regel bereits aus. Debian Sid führt derzeit noch coreutils in Version 8.23-4 in den Paketquellen, ein Update dürfte jedoch bald folgen. Ist auf Ihrem System eine ausreichend aktuelle Version der Coreutils installiert, genügt es, an den üblichen dd-Befehl die Option status=progress anzuhängen. Das Kommando zeigt dann die bereits kopierte Datenmenge, die verstrichene Zeit und die aktuelle Übertragungsrate an.

Terminal5 Zeilen
dd --version
dd (coreutils) 8.24
[...]
sudo dd if=beispiel.img of=/dev/sdd bs=1M status=progress
461373440 Bytes (461 MB) kopiert, 28,875167 s, 16,0 MB/s

Wer mit Ubuntu unterwegs ist, muss auf die kommende Ubuntu-Version „Xenial Xerus“ 16.04 warten – erst diese bringt eine ausreichend aktuelle Version des Pakets mit. Ältere Ubuntu-Ausgaben werden ein Update eines derart zentralen Pakets wie coreutils mit großer Wahrscheinlichkeit nicht erhalten. Wer coreutils 8.24 dennoch manuell unter Debian oder Ubuntu installieren möchte, kann dies mit den folgenden Kommandos tun. Ich persönlich würde jedoch davon abraten: Zwar verlief ein Test unter Ubuntu 15.10 in einer virtuellen Maschine problemlos, langfristig kann eine manuelle Installation dieser Art jedoch zu unerwarteten Problemen führen.

Terminal12 Zeilen
wget ftp://ftp.gnu.org/pub/gnu/coreutils/coreutils-8.24.tar.xz
tar -xf coreutils-8.24.tar.xz
cd coreutils-8.24
./configure && make -j $(nproc) && sudo make install
dd --version
dd (coreutils) 8.24
Copyright © 2015 Free Software Foundation, Inc.
Lizenz GPLv3+: GNU GPL Version 3 oder höher <http://gnu.org/licenses/gpl.html>
Dies ist freie Software: Sie können sie ändern und weitergeben.
Es gibt keinerlei Garantien, soweit wie es das Gesetz erlaubt.

Geschrieben von Paul Rubin, David MacKenzie und Stuart Kemp.

pv als Alternative zu dd

Als Alternative zu dd – unabhängig davon, ob mit oder ohne Fortschrittsanzeige – empfiehlt sich generell der Pipe Viewer, kurz pv. Das Programm ist in den Paketquellen aller gängigen Linux-Distributionen enthalten und bietet im Gegensatz zur aktualisierten dd-Version zusätzlich einen grafischen Fortschrittsbalken. So sehen Sie auf einen Blick, wie lange der Kopiervorgang noch dauert – selbst ohne die Größe der Imagedatei zu kennen. Außerdem wählt pv automatisch eine sinnvolle Blockgröße, sodass der Kopiervorgang effizient abläuft. Bei dd hingegen sollte die Option bs=1M nicht weggelassen werden.

Terminal7 Zeilen
Pipe Viewer unter Debian, Ubuntu oder Linux Mint installieren
sudo apt install pv
Pipe Viewer unter Arch Linux, Manjaro oder Antergos installieren
sudo pacman -S pv
Mit Pipe Viewer eine Imagedatei kopieren
pv < 2015-11-21-raspbian-jessie.img > /dev/sdd
1,63GiB 0:01:48 [12,5MiB/s] [=============> ] 44% ETA 0:02:14

Diskussion 8 Kommentare, zuletzt am

Chris Pea „Bitte beachten, um die Coreutils installieren zu können, muss ein compiler da sein beispielsweise gcc und das libc6-dev package, ansonsten läuft make ins leere“

Alle 8 Kommentare lesenKommentar schreiben

8 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Markdown wird unterstützt: **fett**, _kursiv_, [Linktext](URL), `Code`, Zeilen mit - für Listen, 1. für nummerierte Listen, dreifache Backticks für Codeblöcke.

Sicherheitsprüfung: läuft automatisch, du musst nichts tun.

  1. Avatar von
    Anonym

    Danke, ein sehr interessantes Feature von dem ich noch nicht wusste. Und das obwohl coreutils 8.24 bei mir bereits seit Juli 2015 installiert ist (Arch Linux).

  2. Avatar von
    Anonym

    SD Karten schreiben geht auch bei USB 2.0 schnell, so lange man bs=4M setzt. Ohne die Option wird jeder Block 8x beschrieben.

  3. Avatar von Florian Vaal

    Endlich! Wie lange ich auf dieses Feature gewartet habe. Danke 🙂

    Zuvor musste man sich immer mit pv und zwei Pipes helfen. Zum Glück gehört das jetzt der Vergangenheit an:

    $ dd if=/dev/urandom | pv | dd of=/dev/sda1

  4. Avatar von andre

    DDrescue bringt so etwas schon lange und auch die Lese und Schreibraten werden angezeigt

  5. Avatar von Chris Pea
    Chris Pea

    Bitte beachten, um die Coreutils installieren zu können, muss ein compiler da sein beispielsweise gcc und das libc6-dev package, ansonsten läuft make ins leere

Mehr aus dem Blog

Gerade diskutiert

Kategorien

Schlagwörter

Zeilen sind breiter als der Bildschirm. Quer halten zeigt mehr – oder Umbrechen einschalten.

Linux und Ich — dd aus Coreutils 8.24 kennt jetzt eine Fortschrittsanzeige
https://linuxundich.de/dd-coreutils-824-fortschrittsanzeige/ — gedruckt am 21. Oktober 2026