Mini Tip: Print I/O Statistics of a Running «dd» Process
If you want to create an exact copy from one partition to another, or if you want to fill a partition with random data dd is the tool of your choice.
To copy the contents of /dev/sda
to /dev/sdb
you would type
# dd if=/dev/sda of=/dev/sdb bs=4M
To fill /dev/sdb5
with random data as preparation to an encryption using cryptsetup you would type
# dd if=/dev/urandom of=/dev/sdb5 bs=4M
Depending on the disk size these command can take several hours and you won't see any progress. However, when the dd job terminates it will print a line like this:
743+0 records in 743+0 records out 3116367872 bytes (3.1 GB) copied, 88.7885 s, 35.1 MB/s
But if you want to fill a 2TB partition with random data and you want to know the progress while the dd
command
is still running how can you know how far it already came?
Sending a USR1 signal to a running 'dd' process makes it print I/O statistics to standard error without terminating the process. First find the PID of the running dd process:
# ps -ef | grep -w '[d]d' root 12731 11445 0 21:51 pts/1 00:00:00 dd if=/dev/random of=/dev/sdb5 bs=4M
Sending a USR1 command to the process...
# kill -USR1 12731
will force the running dd process printing out progress statistics to stderr and continue working. The statistics appear on the terminal where you started the dd process not on the terminal you issued the kill command.
# dd if=/dev/urandom of=/dev/sdb5 bs=4M 0+1151 records in 0+1151 records out 9237 bytes (9.2 kB) copied, 0.391 s, 23.1 kB/s _