How to Create a Bootable USB Drive Using dd Command on Linux

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.

About Magesh Maruthamuthu

Love to play with all Linux distribution

View all posts by Magesh Maruthamuthu

One Comment on “How to Create a Bootable USB Drive Using dd Command on Linux”

  1. “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.

Leave a Reply

Your email address will not be published. Required fields are marked *