====== dd ======
**General Information**
Using dd to create a USB bootable image.
**Checklist**
* Distro(s): Any
----
===== The command =====
dd if=~/image.iso of=/dev/sdx oflag=direct bs=2MB
==== Explanation ====
* 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
----
===== Get DD status =====
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
----
===== Alternative DD status =====
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