Why are there different options for creating bootable usb compared to a cd


So when creating a bootable cd it was really simple in my opinion.

All you needed to do was burn an .iso file to a disk and it was bootable.

Now with the usb drives you have lots more options.

enter image description here

Could someone explain the difference needed between the 2?

Maybe give a brief overview of the different options.

Best Answer

Rufus developer here.

First of all, a lot of the options you list are only be listed when running Rufus in advanced mode (i.e. when the Advanced Options section is displayed), because they are intended for people who already known what they are about.

To start with, you have to understand that the ISO format was NEVER designed for USB boot. ISO is a 1:1 copy of an optical disc, and optical disc media are very different from USB media, both in terms of how their boot loaders should be structured, what file system they use, how they are partitioned (they aren't), and so on.

So, if you have an ISO, you cannot simply do with an USB what you can do for an optical disc, which is read every single byte from the ISO and copy it as is, in sequence, onto the disc (i.e. what CD/DVD burner applications do when writing an ISO).

That's not to say that this kind of 1:1 copy cannot exist for USB, just that, 1:1 copies of USB media will be completely different from 1:1 copies of optical disc media and (outside of using ISOHybrid images, that are crafted to work as both 1:1 copies of disk and optical) are therefore not interchangeable. For the record, in Rufus terminology, a 1:1 copy of USB media is called a DD Image (you'll see that option in the list), and some distributions, like FreeBSD or Raspbian, actually provide DD Images for USB installation, alongside ISOs for CD/DVD installation.

Thus, we have established that ISO images are actually poorly suited to create bootable USB media, because they are the equivalent of providing a round peg in order to fit a smaller square hole, and therefore, the round peg must be altered in order to fit.

Now you may be wondering why, if bootable ISOs are so poorly suited for that, most OS distributors out there provide ISO Images instead of DD Images. Well, outside of historical reasons, one of the issues of DD Images is that, because they are a partitioned file system, then if you create a 1:1 copy on USB media, and your media is larger than the one from the person who created the image, then, then you will end up with the apparent capacity of your media reduced to the size of the one from the original DD Image. Also, whereas optical discs, and therefore ISOs, can only ever use one of two file systems (ISO9660 or UDF), all of which have been very well supported in all major OSes for a very long time (which allows you to take a peek at the image content before or after you use it), DD Images can literally use any of the thousands of different file systems that exist, which means that, even after you create your bootable USB, you may not be able to actually see any content on it until you boot. For instance, this will be the case if you use the FreeBSD USB images on Windows — Once the USB has been created, Windows will be unable to access any content on it, until you reformat.

This is why OS providers tend to want to stick with ISOs where possible, as it (usually) provides a better user experience across all OSes. But that also means that some conversion must (usually) occur, so that our round ISO peg can fit nicely into the smaller square hole that is an USB flash drive. How does that relate to the list options? We're coming to that.

One of the first thing that usually needs to go is the ISO9660 or UDF file system that ISOs used. Most of the time, this means extracting and copying all the files from the ISO onto a FAT32 or NTFS file system, which is what bootable USB Flash drives tend to use. But of course that means that, whoever create the ISO system must have taken some provision to support FAT32 or NTFS as a file system for live or installation (which not all people, especially the ones who rely a bit too much on ISOHybrid, tend to do).

Then, there is the actual bootloader itself, i.e. the first bit of code that executes when a computer boots from USB. Unfortunately, HDD/USB and ISO bootloaders are very different beasts, and the BIOS or UEFI firmware also treat USB and optical media very differently during boot. So you can't usually take the boot loader from the ISO (which would usually be an El Torito boot loader), copy it to USB, and expect that USB to boot.

And this is the part that is relevant to our list options, because Rufus will have to provide a relevant bootloader piece, that it simply can't obtain from the ISO. If we are dealing with a Linux based ISO, then chances are it will use GRUB 2.0 or Syslinux, so Rufus includes the ability to install an USB version of GRUB or Syslinux (since the ISO usually only contains the ISO specific version of those). Now, this is usually done automatically when you select ISO Image and open an ISO, as Rufus is smart enough to detect what kind of conversion it needs to apply, but if you want to play around, Rufus gives you the choice to also install some BLANK bootloaders, that enable you to boot to a GRUB or Syslinux prompt. From there, if you are familiar with these types of boot loaders, you can create/test your own config files and try your very own Syslinux or GRUB based custom boot process (because, at this stage, you only have to copy/edit files on the USB to do that).

So, we can now go around the options you find in the list:

  • MS-DOS: This creates a BLANK version of MS-DOS (Windows Me edition), which means you'll boot to an MS-DOS prompt, and that's it (if you want to run a DOS application, you'll need to copy it). Note that this options is only available on Windows 8.1 or earlier, but not Windows 10 since Microsoft removed the DOS installation files from Windows (and only Microsoft can redistribute these files).
  • FreeDOS: This creates a BLANK version of FreeDOS. FreeDOS is a Free Software version of MS-DOS, which is fully compatible with MS-DOS, but has also the advantage of being Open Source. As opposed to MS-DOS, anyone can redistribute FreeDOS, so the FreeDOS boot files are included in Rufus.
  • ISO Image: This is the option you should use if you have a bootable ISO, and want to convert it to bootable USB. Note that, because a conversion (usually) needs to occur, and there are zillions of ways to create a bootable ISO, there's no guarantee that Rufus will be able to convert it to USB. But it will always tell you if that is the case.
  • DD Image: This is the method you should use if you have a bootable disk image, such as the ones provided by FreeBSD, Raspbian and so on. .vhd are also supported (which is Microsoft's version of a DD Image), as well as compression (.gz, .zip, .bz2, .xz, .Z...).

The four options above are the ones you will see in regular mode. If you run Rufus in advanced mode, you will also have the following choices:

  • Syslinux x.yz: Installs a BLANK Syslinux(http://www.syslinux.org) bootloader. Will get you to a Syslinux prompt and not much else. You are supposed to know what you need to do from here.
  • GRUB/Grub4DOS: Same as above, but for GRUB/Grub4DOS respectively. Will get you to a GRUB prompt, up to you to figure out the rest.
  • ReactOS: Installs a ReactOS bootloader. This is experimental, since, last time I checked, ReactOS didn't boot that well from USB. It's there because it was easy to add, in the hope that it can help with ReactOS development.
  • UEFI:NTFS: This requires NTFS to be selected as the file system. Installs a BLANK UEFI:NTFS bootloader. This enables booting from NTFS in pure UEFI mode (i.e. not CSM), on UEFI platforms that do not include an NTFS driver. Because it's BLANK, you'll need to copy your own /efi/boot/bootia32.efi or /efi/boot/bootx64.efi onto the NTFS partition for that to be useful. UEFI:NTFS is automatically used by Rufus to work around the 4GB maximum file size of FAT32, which, for instance, allows the installation of Microsoft Server 2016, in UEFI mode, without having to split its 4.7GB install.wim file...

Hope that helps.

PS: This is a simplified overview, so I hope people won't start nitpicking on aspects that were deliberately dumbed down or kept silent (such as that, yes, I know it is possible to have USB flash drives without partitions, yes, it is also possible to have USB and optical use the same file system and yes, some boot processes have the capability to extend the partition size to the USB size to solve the lower apparent capacity issue).