Making a bootable USB thumb drive from an ISO in Linux

I recently had to download an ISO image for an operating system and make a bootable copy of that ISO image on a USB thumb drive. My memory failed me so I had a bit of lookup work to do in my notes and therefore a little howto.

syslinux

First of all you will need syslinux to be installed.

$ sudo apt-get install syslinux

isohybrid the image

The main thing to remember is that the ISO file you use to burn to a CD/DVD is not the same as the one you use to write to a thumb drive. The one you need for the thumb drive is in hybrid disc format where the one you write to a CD/DVD is in ISO 9660 format.

To convert convert our ISO 9660 to hybrid disc format we use the too isohybrid. This tool will make the necessary changes to the ISO file.

isohybrid <boot.iso>

If you want the proof that the installation medium has changed I worked out an example:

$ md5sum CentOS-7-x86_64-Everything-1708.iso 
9c44536b825e69947e7eef423576273d CentOS-7-x86_64-Everything-1708.iso
$ isohybrid CentOS-7-x86_64-Everything-1708.iso 
isohybrid: Warning: more than 1024 cylinders: 8292
isohybrid: Not all BIOSes will be able to boot this device
$ md5sum CentOS-7-x86_64-Everything-1708.iso 
0d5f7f1d27904b2730968627920463b5 CentOS-7-x86_64-Everything-1708.iso

The message we got from isohybrid is to warn us that not all BIOS systems support “large” boot devices.

dd

dd is still an amazing tool and my preferred way to copy the iso over to the USB. That is done by doing

$ sudo dd if=<boot.iso> of=/dev/sdX