General Information

Using dd to create a USB bootable image.


  • Distro(s): Any

dd if=~/image.iso of=/dev/sdx oflag=direct  bs=2MB
  • if = in file, the location of source image
  • of = output file, the location of the USB device. x is the drive letter.
  • oflag direct = bypass the cache and write direct to disk
  • bs = write in the specified block size

To get a progress report while dd is running, you need to open another virtual terminal, and then send a special USR1 signal to the dd process.

First, find out the process id of the dd process by running the following in the new virtual terminal.

pgrep -l '^dd$'
8789 dd

To send the USR1 signal to the dd prcoess:

kill -USR1  8789

As soon as the USR1 signal is detected, dd will print out the current statistics to its STDERR.

$ dd if=/dev/random of=/dev/null bs=1K count=100
0+14 records in
0+14 records out
204 bytes (204 B) copied, 24.92 seconds, 0.0 kB/s

Use the watch command to execute kill at a set interval. (every 10 seconds in this case)

watch -n 10 kill -USR1 8789

Another method of getting dd status is using pv. PV “monitors the progress of data through a pipe”.

The dd command then becomes:

dd if=~/image.iso | pv -petr | of=/dev/sdx oflag=direct  bs=2MB

pv options

  • -p : show progress bar
  • -e : estimated time remaining
  • -t : timer on, show total time running
  • -r : rate of data transfer
  • linux_wiki/dd.txt
  • Last modified: 2019/05/26 03:50
  • (external edit)