Sending a USR1 signal to a running `dd' process makes it print I/O statistics to standard error and then resume copying. $ dd if=/dev/sde of=myfile.img bs=512 conv=noerror & pid=$! $ kill -USR1 $pid 18335302+0 records in 18335302+0 records out 9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s NOTE: to resume an interrupted session: dd if=/dev/sdd of=disk.img bs=512 skip=64009698 seek=64009698 conv=noerror & where skip & seek = num_of_blocks_to_skip (i.e. disk.img lenght in bytes / block_size [bs] )