Creating bootable USB Drives with Etcher

As a rule, distributions can be downloaded from the Internet as ISO files. If you are not using the file in a virtual machine, you will have to put it on a bootable data storage device. Previously, CD/DVD burners took on the task of putting an ISO image on a fresh medium. Nowadays, USB drives and SD cards have become the medium of choice.

This change has occurred for a number of reasons. For one thing, most handheld computers like notebooks and compact ultra books no longer come with an optical drive. With the introduction of USB 2.0 specifications, the USB interface allows for enough speed to start an entire operating system within an acceptable amount of time. Currently, USB 3.0 lets high performance sticks achieve transfer rates of over 200MBps. These rates far surpass those for optical drives.

Under Linux, there are several, well-established tools that can easily create a bootable USB drive. Even so, the old adage "the devil is in the details" is definitely applicable here. Many ISO files do not start by themselves from a USB. At the very least, you will have to carefully prepare the drive before loading the image.

Systematic

ISO files are based on the ISO 9660 filesystem standard [1] that was released in 1986. This is a standard that was specially created for optical data storage devices. In order to start an operating system image from an optical data storage device, the device has to have a boot sector according to the El Torito standard, which allows live operation without installing the system. However, ISO files with an El Torito boot sector are not suitable for booting from a USB drive.

The ISO 9660 standard allows for the system area at the beginning of the filesystem to integrate multiple boot sectors in a single image. This makes it possible for a given volume boot record (VBR) to start the operating system from a flash drive. SD cards can be used as an alternative. These cards are also suitable for use as VBR-enabled boot media. ISO images that integrate different boot sectors are known as hybrid images.

Another problem arises with the filesystems on memory sticks. Current devices insist on the use of a FAT32 filesystem. This means that ext3/4 and NTFS do not work for creating bootable USB drives. Therefore, you don't have to modify the filesystem on a newly purchased drive since practically all of them now come with FAT32 by default. Older memory sticks and first generation SD cards mostly come with FAT16, which is also suitable for creating a start medium.

dd

The command-line tool dd [2] is typically used under Linux for sending ISO files to a USB drive. This is a reliable and stable tool. It requires input from the source (if ) and the target (of ). You will need to pay special attention when inputting the target drive. If the path or drive is not correct, then you may end up overwriting the local hard drive.

Several graphical tools that are distribution-specific like USB ImageWriter [3] under Linux Mint, ImageWriter [4] under openSUSE, or the ROSA ImageWriter [5] from ROSA Linux serve as front ends for dd . This simplifies the operation of this tool.

Reformatting the drive is frequently omitted, or reformatting is launched by externally connected tools. However, such tools exclusively write hybrid images to a USB drive since they produce a copy of the ISO image byte by byte. For this, you will most probably need a USB drive that has likewise been prepared with the suitable filesystem.

UNetbootin [6] is the only current tool that can also transfer non-hybrid images to a USB drive correctly. It is able to do this by making complex modifications to the image file. However, the tool often fails when dealing with current ISO images without an entry for a VBR boot sector.

Alternative

The Javascript program Etcher is one of the newcomers in the ISO transfer business. It was developed by Resin.io, an American company that was founded in 2013 and builds software for the Internet of Things. The cross-platform framework Electron serves as the basis for Etcher. Resin.io relies heavily on Linux and has developed Etcher in order to write images of operating systems to USB drives with maximum speed and efficiency so they can be used with appliances. As a consequence, you won't find the interface for this software overloaded with options.

To install Etcher, first download the ZIP archive [7], which is just shy of 70MB, to the suitable hardware architecture for you computer. The archive contains a single executable file, which is named either Etcher-linux-x86.AppImage or Etcher-linux-x64.AppImage . Once decompressed, click to start the software. When started, the software will ask whether the installer should integrate the software in the system. Then comes the actual program window, which makes do without the customary operating elements like menus and list views (Figure 1).

Figure 1: Etcher reduces the number of operating elements to the absolute minimum in order to create the maximum simplicity of use.

Three horizontally arranged icons are used in the creation of a bootable USB drive. To the far left under SELECT IMAGE , you open a file manager by clicking on Change . Here you will select the image to be written. Etcher can handle ISO images, and it also recognizes things like IMG image files for SD cards, as well as ZIP archives and archive tarballs. When an archive file is decompressed, it must meet all of the requirements of an ISO image to work.

Specify the target drive using the middle option SELECT DRIVE . Normally, the application will automatically recognize this drive, but you can change the target drive by clicking on the Change button if it doesn't. Check the desired drive in the corresponding dialog with a mouse click. Then close the selection by clicking on Continue .

At the far right, the FLASH IMAGE is the last icon you need to know about. Underneath you will find the Flash! button. After authentication, you should use this button to write the image to the target drive. The software does not expect that you have unmounted the drive or manually formatted it with the appropriate FAT filesystem. Instead, the software accomplishes the write process without the need for any further manual intervention. During the write process, the Flash! button turns into a progress indicator (Figure 2).

Figure 2: After the flash process starts, an indicator bar shows its progress.

After the writing process has ended, the tool checks the data storage device for consistency and then shows a dialog asking whether you would like to write the same image again or whether you would like to send it to another device (Figure 3). Lastly, Etcher automatically unmounts the target drive, meaning you can immediately take the USB drive out without running the risk of damaging the filesystem.

Figure 3: If desired, the software can prepare multiple USB devices in succession.

Options

Additionally, Etcher has a very simple settings window that you can call by clicking on the cog wheel icon at the top right of the home screen. Settings only includes three options, which you activate and deactivate by means of a check mark. By default, the tool activates the auto-unmount function upon the conclusion of a successful burn. It also activates the write validation option and the protocol function for errors.

During testing, deactivating the functions had no effect on how fast the software ran. Therefore, I recommend that you leave the default setting alone for purposes of data integrity. The Back button at the top right of the window takes you from Settings back into the home screen.

Results

Based on my practice tests, I find Etcher appealing but not entirely convincing. For example, I noticed one small defect that appeared when the software started under Mageia 5, ROSA Linux R8, and openSUSE Leap 42.1. Each time an error message popped up informing me that user rights were missing. This kept happening even though the FUSE libraries had been completely integrated into each system. However, the software started gracefully under Ubuntu 16.04 and Linux Mint 18; the pesky error message did not appear.

The window that is superimposed on the home screen and indicates the possibility of integration in the menu system for the given desktop proved to be a dummy only. Moreover, Etcher was not able to create a bootable flash drive from non-hybrid images with only one El Torito boot sector.

Even so, Etcher proved reliable in recognizing each mounted USB drive and its operating status without the need for additional manual work. The validation function for the write process ensures a high level of data integrity.

Conclusion

Desktop-specific tools for sending OS images to USB drives often rely on external formatting routines. They also often require that the user unmount the prepared flash drive manually. These tools can therefore cause confusion instead of making the transfer easier.

Etcher makes these steps obsolete. All you have to do with this program is to select the image and launch the write process. The software will reliably take care of the rest. Moreover, the software accepts both ISO files as a source, and also images in IMG and archive form.

However, with hybrid images, Etcher also assumes that exotic distribution images with El Torito boot sectors are not suitable. Due to the fact that the project is under constant development, it is entirely possible that existing deficits, like the missing desktop integration, will soon be a thing of the past.