Generally, we use GUI applications such as Etcher, BootISO and other applications to create a bootable USB drives on Linux.
A bootable USB drive is required when you want to install a new operating system or if you want to run the operating system directly.
You may know that CLI is more powerful than GUI, so you can do this through CLI with the help of dd command without installing any applications.
What’s dd Command
dd stands for “Data Duplicator” is used to convert and copy files. It is a powerful tool that can be used for many purposes, cloning data from one disk or partition to others at the block level.
When you clone a disk using the dd command, it copies the entire disk data, such as partition information and file system data, etc,.
Also, it’s used for disk backup and restore, converting data formats, etc,.
The dd command is preinstalled on most distributions as it’s part of the GNU coreutils package.
How to Identify the USB Drive
There are many ways you can identify a USB drive in Linux, but I recommend using the lsblk command.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 30G 0 disk └─sda1 8:1 0 20G 0 part / sdb 8:16 1 15G 0 disk └─sdb1 8:17 1 15G 0 part /media/daygeek/UUI
In my case the USB device name is “sdb1”.
How to Format the USB Drive
Linux system doesn’t allow you to format a disk that is already mounted. So unmount it to format the USB drive.
Use the umount command to unmount the USB drive from the directory tree.
$ sudo umount /dev/sdb
Now format the drive based on the file system type.
For instance, if you want to format the drive with the FAT file system, use the command below.
$ sudo mkfs.vfat /dev/sdb
How to Create a Bootable USB using dd command
Finally run the below dd command to create a bootable USB drive from an ISO image.
$ sudo dd if=/path/to/archlinux-2020.08.01-x86_64.iso of=/dev/sdb status=progress 377+1 records in 377+1 records out 702545920 bytes (670 MB) copied, 62.0783 s, 25.5 MB/s
Details:
dd:
It’s a command.if:
if stands for “Input file”, it refers to the path of the ISO image file.of:
of stands for “Output file”, which specifies where the ISO file need be written.
“sync: pad every input block with NULs to ibs-size” – sorry but this is incorrect. Your command line uses “&& sync” which sync’s any cached data with the target disk. The explanation you copy/pasted is for the dd flag: ‘conv=sync’, which you are not using. Please read the man pages. Thanks.