Why are there different options for creating bootable usb compared to a cd?
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 fromNTFS
in pure UEFI mode (i.e. not CSM), on UEFI platforms that do not include anNTFS
driver. Because it's BLANK, you'll need to copy your own/efi/boot/bootia32.efi
or/efi/boot/bootx64.efi
onto theNTFS
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.7GBinstall.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).
Rufus is a formatting tool for USB drives, i.e. it can be used even if you aren't interested in making bootable drives. The top part is for this general formatting, the bottom part is specific for adding content.
CDs normally don't have the option of using different filesystems and partitions. CDs as a medium, by convention, have a single 'partition' with the ISO9660 or UDF filesystem and some standard block size. Other formatting is possible with the right tools, but Rufus only supports formatting USB drives. Even if you managed to create a CD with an MBR and various filesystems it probably wouldn't be bootable because the firmware doesn't expect it.
BIOS and UEFI treat bootable CDs similarly (I think), but they require different formatting for USB drives. To simplify: UEFI requires a FAT partition and .efi files, BIOS needs the initial bootcode to reside in an MBR partition table, doesn't care about filesystem type. This means smart formatting software should include options for BIOS and UEFI and process the image file appropriately. I believe this is what happens when you select "ISO image" in that drop-down list.
But that drop-down list below isn't really USB specific. The equivalent of an oldschool CD burn is DD image, probably related to the Unix dd command. The other options allow adding bootloader programs, this is useful for 2 reasons:
- You might not have bootcode in your image file for booting. Just because an image is bootable for CDs doesn't mean it contains bootcode for a USB drive (though hybrid images do exist).
- Another bootloader might offer options you prefer, or does a better/faster job of loading your OS.
In theory a CD burner could also offer the option to overwrite/add a bootloader like those in your drop-down list, i.e. a Rufus for CDs (but I don't know if it exists).
The ISO option in that list probably uses DD mode internally, if your firmware target matches the properties of your image. But that is speculation on my part.
In general you don't have to bother about that. These options typically are special options, or specific bootloaders you'd want in specific cases - for some reason I have a different set of options but ISO Image and DD Image are the "default" options. Syslinux and Grub are linux bootloaders you can then setup to chainload something else. UEFI NTFS sets it up as a UEFI bootable NTFS partition for whatever use you may have. I don't have the MS DOS, freedos makes a basic freedos bootable USB, and reactos asks you for an ISO.
PRACTICALLY SPEAKING, all you need to do is click on that little disk icon to the right, point it at the ISO and let rufus take care of it.
As for "why its so complex" - with 'burning' an ISO, you are literally just making a bit perfect copy. With USB boot, there's additional steps (which rufus hides beautifully).
For example, you can pick different system firmware options (classic bios, or UEFI?) which matters sometimes. You can pick a filesystem (though fat32 is always a safe option). Contrast this to "which drive do you want to burn it to"