If you use dd for any kind of copying you’ll know how it’s not exactly forthcoming with information and it’s hard to tell if it’s doing anything.
Some versions of dd have a status=progress parameter that will output progress information. Sadly this doesn’t exist on the native MacOS version.
An alternative way of showing progress information is to use pv (or pipe viewer).
First install it with brew:
brew install pv
Then wedge pv between reading from the dd source and writing to the dd output.
For example, you might write a Raspberry Pi image to an SD card with:
dd if=retropie.img of=/dev/rdisk4
Using pv you break this into the input and output parts and put pv in the middle:
dd if=retropie.img | pv | dd of=/dev/rdisk4
Sudo needs to be added to both calls to dd:
sudo dd if=retropie.img | pv | sudo dd of=/dev/rdisk4
Telling pv how much data you are transferring allows it to provide better information, and you can do this with the -s flag. In this instance the amount of data is the size of the input image, so:
sudo dd if=retropie.img | pv -s `stat -f%s retropie.img` | sudo dd of=/dev/rdisk4
And what is the result of this? You get to see the progress! Useful if you’re transferring a large amount of data.

Leave a reply to Marcus Kazmierczak Cancel reply