How to Create Bootable USB using the dd command

We have several options to create bootable USB drive in Linux such as balenaEtcher, Ventoy, Unetbootin and many others.

Today we will see a unique way to create a bootable disk, In this method, you do not need to install any third-party applications or libraries, and it is a most simple way to create a bootable disk. Do you want to know how to do? Follow our instructions.

In this article, I’ll perform this task into my Ubuntu Focal Fossa (20.4), and I believe this method will work on all Linux Distributions.

Prerequisite

If you are just taking overview of this article you don’t need to full fill any requirement, For those who want to implement they need to have:

  • Pre-installed Linux Distribution(OpenSUSE, Centos)
  • ISO Image (Ubuntu,OpenSUSE,Windows 10)
  • USB Drive (At least 8GB)

I don’t think, so I haven’t asked much from your side, isn’t it? ‘No’, Let’s move to How to create a Bootable USB using dd command prior to that first understand what is the dd command?

What is dd Command?

A dd command is a command-line utility that is main work is used to convert and copy, and It stands for “Data Duplicator”.

This command does not only used to Create Bootable Disk It can do a various task such as

  • Clone Disk
  • Create Backup partition table
  • Install Bootloader to Disk
  • Convert text and files.
  • Performance of Storage Disk

To use the dd command, you don’t need to download anything from a repository because it preinstalled in all Linux Distributions, and it is a part of GNU Coreutils.

It interesting to note command starts from dd instead of cc If anyone knows the reason why the developer ain’t used cc over to dd please let me know in the comment section.

Steps to Create Bootable Image

To create a Bootable Image using dd command require a couple of steps afterwards, your USB is ready to Boot any System.

Note:- This below step will format your USB drive, so it requests you to make a backup of your USB drive else you may lose your valuable data.

Step 1:- Attach USB

I assume you have already Downloaded the required ISO file, To create bootable disk attach your USB drive to System and Open Linux terminal and pass the following command:

$ sudo fdisk -l

This command will list out all the Disk storage details that are available to your system, from the output note down your attached USB drive name.

In my case USB Drive name is listed /dev/sdb of 16 GB USB disk, If you have attached multiple storage disk name /dev/sdX can differ.

Disk /dev/sdb: 14.33 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Dual Drive      
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x864c3080

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1        2048 30031871 30029824 14.3G 83 Linux

Note: In case you have already created bootable disk using balenaEtcher, ventoy or Rufus, please restore your USB disk normal to Create a bootable disk using dd command to avoid failure.

Step 2:- Flash ISO Image to USB Drive

We are almost ready to flash ISO Image to a USB drive, First, open Linux Terminal and type the following command:

Command Syntax

$ sudo dd if=/[ISOFILE-LOCATION] of=/dev/[PARTITION NAME] status=progress 
  • dd command used to create a bootable disk.
  • if flag stands for ‘Input file’, and it is used to read a file from the system (Provide ISO file location).
  • of parameter stands for ‘Output file’ is used to specify the location where you need to write the file.
  • status=progress It is optional to use By default dd command will not show the progress of a current task.

Make sure to replace [ISOFILE-LOCATION] and [PARTITION] with the above following details.

For example, In my external drive (/media/trendoceans/Shen\ Default) ISO file is stored, and my USB drive name is /dev/sdb .

So, I type the following command in my Linux terminal to create bootable disk:

$ sudo dd if=/media/trendoceans/Shen\ Default/ISO/ubuntu-20.04.1-desktop-amd64.iso of=/dev/sdb status=progress 

Output
2780705280 bytes (2.8 GB, 2.6 GiB) copied, 531 s, 5.2 MB/s 
5439488+0 records in
5439488+0 records out
2785017856 bytes (2.8 GB, 2.6 GiB) copied, 531.445 s, 5.2 MB/s

Step 3:- Reboot and Use

Once the process gets complete, you need to restart your system, get into Boot options and select the USB drive to boot.

In every computer system, Boot options key is different please confirm with the respective Hardware manufacturer or else you can try "ESC" or "F2" or "F8" or "F9" or "F12".

Step 4:- Reformat Bootable USB Drive (Optional)

This is the optional step but later you need this for sure to use a bootable USB drive as a normal USB drive to store some files.

When you create a bootable drive using dd command or any third party tool it will create multiple partition, usually thumb drive has single partition to store data.

To recover bootable USB drive, we have already published article and video on this make sure to check it out How to restore USB normal after bootable USB.

Wrap-up

That’s it to create bootable USB drive using dd command, If you need any help from my end, please let me know in the comment section.

If you want to share some insightful topic or want me to cover let me know in the comment sections.

This Post Has 2 Comments

  1. Ganesh

    Thank you for this post! dd is used instead of cc. because, ‘cc’ name is already taken for the c compiler.

    1. Gagan Mishra

      The answer is correct, Ganesh.

Leave a Reply