Monitoring Progress of DD on OSX

I needed to copy an iso to a flash drive to install Windows 7 on my friends computer and decided that 

<a href="http://linux.die.net/man/1/dd">dd</a>

 was the right tool to perform this transfer. However, I know from past experience that 

dd

 will not show any kind of progress or progress bar. In the past I have been able to send a command along the lines of:

killall -USR1 dd

It appears that dd in OSX requires a -INFO flag from a kill / killall command rather then a -USR1 flag as is the standard in most Linux distributions I have played with. This brought me the following info:

1952+0 records in
1951+0 records out
2045771776 bytes transferred in 1486.640041 secs (1376104bytes/sec)

This is nice, but what if I want more information? Ok well then I can use iostat. In my case the command I used was:

iostat -Iw 3 disk1

This showed me a transfer summary every 3 seconds for disk1. The output looked like this:

    disk1       cpu     load average
KB/t xfrs   MB  us sy id   1m   5m   15m
4.00 683747 2670.89   2  4 94  0.18 0.29 0.70
4.00 684771 2674.89   2  3 95  0.17 0.29 0.70
4.00 685795 2678.89   6  6 88  0.17 0.29 0.70
4.00 686819 2682.89   4  5 91  0.15 0.28 0.69
4.00 687843 2686.89   6  5 89  0.14 0.28 0.69
4.00 688867 2690.89   3  5 92  0.14 0.28 0.69
4.00 689868 2694.80   3  5 92  0.13 0.27 0.69

Between the two, this was enough for my needs. However if you want a “graphical” way to monitor the transfer, check out Pipe Viewer.

PV is used to pipe data through and gives you speed.  if you give it a size via the -s switch then it will give you a progress bar

dd if=~/Desktop/file.dd | pv -s 256000k | dd of=/dev/disk1 bs=1024