How to Create Bootable Ubuntu USB flash Drive from Terminal

In this article, we are going to show how to create a bootable USB flash drive from the terminal. We are going to use Ubuntu 18.04 ISO file for creating a bootable USB flash drive. You can download mentioned .ISO file from Ubuntu website. We are going to create the bootable USB drive without any third-party tools with GUI or not. If you are looking for GUI tools, you can use YUMI, Unetbootin, etc.

Before we start make sure you have downloaded the .ISO file and have USB flash drive with not less than 4GB capacity. Connect the USB flash drive to your machine and check if it's connected successfully. To do this type in terminal:

lsblk

Output must be like this:

[email protected]:~$ lsblk
 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 sdb 8:16 0 10G 0 disk
 └─sdb1 8:17 0 10G 0 part
 sr0 11:0 1 1024M 0 rom
 sdc 8:32 1 14.9G 0 disk
 ├─sdc2 8:34 1 2.3M 0 part
 └─sdc1 8:33 1 1.7G 0 part /media/linoxide/SANDISK
 sda 8:0 0 20G 0 disk
 ├─sda2 8:2 0 1K 0 part
 ├─sda5 8:5 0 1022M 0 part [SWAP]
 ├─sda3 8:3 0 7.9G 0 part
 └─sda1 8:1 0 9G 0 part /

From the list find your USB drive's mounted partition. In our case it's /dev/sdc1. It is mounted by default.

Next, we must unmount the USB flash drive by this command:

sudo umount /dev/sdc1

Make sure to change according to your USB drive and check if it has been unmounted again with lsblk command. You must see the output without mount point in front of sdc1:

[email protected]:~$ lsblk
 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
 sdb 8:16 0 10G 0 disk
 └─sdb1 8:17 0 10G 0 part
 sr0 11:0 1 1024M 0 rom
 sdc 8:32 1 14.9G 0 disk
 ├─sdc2 8:34 1 2.3M 0 part
 └─sdc1 8:33 1 1.7G 0 part
 sda 8:0 0 20G 0 disk
 ├─sda2 8:2 0 1K 0 part
 ├─sda5 8:5 0 1022M 0 part [SWAP]
 ├─sda3 8:3 0 7.9G 0 part
 └─sda1 8:1 0 9G 0 part /

After USB flash drive is unmounted we can start the process of creating bootable USB drive. We are going to use dd command to do the desired. But dd is a dangerous tool because it does what you tell it to do without questions. So please make sure to write all correctly, otherwise you may have data loss.

To start copying files on USB drive type this command in terminal:

sudo dd bs=4M if=/path/to/input.iso of=/dev/sd<?> conv=fdatasync

Where input.iso is the .ISO image downloaded from Ubuntu's website. Make sure to change <?> with your USB disk letter accordingly. The point here is to write the disk name itself (e.g. /dev/sdc) and not the partition (e.g. /dev/sdc1 ). In our case this command looks like this:

sudo dd bs=4M if=/tmp/ubuntu-18.04-desktop-amd64.iso of=/dev/sdc conv=fdatasync

Where bs is read and write BYTES bytes at a time, if is the output file, of is output file. The conv=fdatasync bit is important as dd can return before the write operation finishes.

By default the progress of the command will not be displayed, to view the progress you can use pv command:

sudo dd if=/tmp/ubuntu-18.04-desktop-amd64.iso | pv | sudo dd of=/dev/sdc bs=4M conv=fdatasync

After the process is finished you can use your bootable USB flash drive is ready. You can boot with it and either try Ubuntu or install Ubuntu.

Note: tests have been done on Ubuntu 16.04 to create Ubuntu 18.04 bootable USB flash drive.

Related Articles :

Using the terminal to create bootable USB drive is much easier and way faster than with GUI tools. Also it is very useful to know how to do it in a terminal, because there isn't always GUI available. The main disadvantage in this case is that there is no double-check option for dd. GUI tools help you to identify and select the target drive, and provide a final checkpoint, where you can double-check, that you will be writing to the correct drive.

Hayk Gevorgyan 12:05 am

About Hayk Gevorgyan

Technical Support Engineer experienced in Linux servers administration of production environments. Exploring DevOps culture and tools. Interested in containerization and open source monitoring tools.

Author Archive Page

Have anything to say?

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

All comments are subject to moderation.