You can use
sudo umount /dev/sd<?><?>
<?><?> is a letter followed by a number, look it up by running
It will look something like
sdb 8:16 1 14.9G 0 disk
├─sdb1 8:17 1 1.6G 0 part /media/username/usb volume name
└─sdb2 8:18 1 2.4M 0 part
I would dismount sdb1.
Then, next (this is a destructive command and wipes the entire USB drive with the contents of the iso, so be careful):
sudo dd bs=4M if=path/to/input.iso of=/dev/sd<?> conv=fdatasync status=progress
input.iso is the input file, and
/dev/sd<?> is the USB device you're writing to (run
lsblk to see all drives to find out what
<?> is for your USB).
This method is fast and has never failed me.
EDIT: for those on a Mac ending up here, use lowercase for
sudo dd if=inputfile.img of=/dev/disk<?> bs=4m && sync
EDIT: If USB drive does not boot (this happened to me), it is because the target is a particular partition on the drive instead of the drive. So the target needs to be /dev/sdc and not dev/sdc
<?> For me it was /dev/sdb .
Reference: https://superuser.com/a/407327 and https://askubuntu.com/a/579615/669976