The Linux dd command is a well-known tool to create live USB. One drawback of this tool is that it doesn’t show progress and thus you don’t know what’s going on while creating live USB. This tutorial explains how to show dd progress in 2 methods.
Show dd Progress with Status option
The dd command is part of the GNU core utilities, aka coreutils. A dd progress indicator has been built into this utility since coreutils version 8.24. To check the version of coreutils on your Linux OS, simply run this command:
Ubuntu 16.04, Debian 9 and Arch Linux-based distros has latest version 8.25. To let dd show progress you need to add status=progress option like below:
sudo dd if=/path/to/iso/file of=/dev/sdX bs=4M status=progress
You can see how much has been copied, how many seconds has passed and write speed.
The exact device name for your USB drive can be obtained from fdisk command.
sudo fdisk -l
Monitor Progress of dd with PV
For those who don’t have access to coreutils v8.24+, this method is for you. pv is a pipe viewer which can be used to monitor the progress of data flow in Linux pipeline. To install it, issue the following command:
sudo apt install pv
sudo yum install pv
sudo zypper install pv
Arch Linux/Manjaro/Apricity OS
sudo pacman -S pv
To see dd progress, combine pv and dd command like below.
pv /path/to/isofile | sudo dd of=/dev/sdX
| is the symbol for pipe in Linux. In the above command, pv puts the iso file into the pipe and dd will get the iso file from the pipe then write the iso file to your USB device identified by /dev/sdX.
You can get status of how much has been copied, how many seconds has passed, write speed, a percentage progress indicator and estimated remaining time.
I personally prefer dd over Unetbootin because dd always worked for me whereas sometimes live USB created by Unetbootin won’t boot.