Monitoring dd progress in Linux makes large disk copies or image writes more predictable. Real-time feedback reveals how much data has been processed and how quickly transfer proceeds, which avoids assuming a long-running command has stalled.
By default, dd writes only a summary when the operation finishes. Newer GNU coreutils releases add the status=progress option that periodically prints a byte counter, while legacy deployments rely on sending a USR1 signal to an existing dd process to trigger an on-demand report. Dedicated helpers such as progress can also watch running core utilities and aggregate transfer statistics.
Because dd commonly targets entire disks and partitions, incorrect parameters can destroy data or overwrite boot sectors. Progress features and external monitors expose throughput and estimated completion time but do not change the underlying risk of selecting the wrong device. Careful validation of source and destination, privileges, and feature availability on the current Linux distribution remains essential before starting any long-running copy.
Steps to monitor dd command progress:
- Open a terminal on Linux with permissions to run dd on the required device or file.
$ whoami user
Running dd against block devices usually requires sudo or root access, while regular files can often be handled as an unprivileged user.
- Run dd with the status=progress option to display a continuously updated byte counter.
$ sudo dd if=/dev/zero of=/dev/null status=progress 2755155968 bytes (2.8 GB, 2.6 GiB) copied, 5 s, 551 MB/s ##### snipped ##### 8589934592 bytes (8.6 GB, 8.0 GiB) copied, 16 s, 537 MB/s 16384+0 records in 16384+0 records out 8589934592 bytes (8.6 GB, 8.0 GiB) copied, 16.0011 s, 536 MB/s
The status=progress option prints a live counter during the transfer and a final summary when the operation completes.
- Start a long-running dd process without progress output when the status=progress option is unavailable.
$ sudo dd if=/dev/zero of=/dev/null
Older GNU coreutils builds and some embedded environments do not support status=progress, so the command prints only a final summary.
- Identify the running dd process from a second terminal before sending a signal.
$ pgrep -a ^dd 4242 dd if=/dev/zero of=/dev/null
The pgrep -a form prints both the process ID and the original command line, which helps confirm that the correct dd process is selected.
- Send a USR1 signal to the dd process to print an inline progress report in its original terminal.
$ sudo kill -USR1 4242
The signal causes dd to write a line such as 123456789 bytes (123 MB) copied, 10 s, 12.3 MB/s to the terminal where it started, then the copy continues.
- Install the progress utility on Debian and Ubuntu to monitor multiple copy operations at once.
$ sudo apt update && sudo apt install --assume-yes progress
Other Linux distributions usually package progress under the same name, installable with tools such as dnf, zypper, or pacman.
- Run progress in monitor mode to show active dd and coreutils jobs.
$ progress -m [ 1] dd (4242) 12% 1.2GB of 10.0GB [ 2] cp (4351) 34% 340MB of 1.0GB
The monitor view updates periodically with per-process percentages, transferred volume, and estimated totals for dd and other supported utilities.
- Observe disk throughput using iostat to confirm I/O activity during dd operations.
$ iostat -dx 1 Linux 6.8.0 (host) 2025-12-11 _x86_64_ (4 CPU) Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util sda 0.00 320.00 0.00 65536.00 0.00 0.00 0.00 0.00 0.00 2.50 0.80 0.00 204.80 3.12 100.00 ##### snipped #####
High sustained write throughput and utilization on the target disk indicate that the copy is actively pushing data rather than stalled.
- Confirm successful completion of dd by checking the final summary line and exit status.
$ echo $? 0
Incorrect if= or of= parameters can irreversibly overwrite partitions or entire disks, so target devices must be verified before starting dd with any of these monitoring methods.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
Comment anonymously. Login not required.
