This is an old revision of the document!
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