Yesterday I penned another tome on UEFI. In contrast to my blog post, this is more of a practical guide to installing Fedora on UEFI-capable systems: it doesn't go into the technical details of how UEFI works, it's more just about what you should and shouldn't do when installing Fedora to UEFI-capable systems in various circumstances.

On a related topic, if I can put in a word on so-called "universal" tools for writing bootable images - like Fedora live or install images, for instance - to USB sticks: they're never actually "universal", and it's usually a bad idea to use them.

I'm talking about tools like UNetbootin and Universal USB Installer. Don't use them, and don't let your friends use them. Mail them to your enemies.

I haven't looked into them all very deeply, but everyone who's done support for a Linux distribution can probably tell you that they're often the cause of "mysterious" failures in booting USB sticks. A lot of them, as far as I can tell, seem to just dump the contents of the image onto the stick and then stick a syslinux bootloader onto it.

This comes with myriad problems. I haven't seen a "universal" USB stick writer which came close to writing something that would boot in native UEFI mode, for instance, never mind boot properly on a Mac. By contrast, distributions like Fedora and SUSE and Arch quite carefully tune their images so that if you write them with a dd-style tool, or the distribution's supported USB stick writing tools, you will get a stick that does boot in all these ways.

Although they usually manage to write a stick that boots in BIOS-native mode on a PC, you can't rely on it booting properly, or being reliable for doing installations. For instance, the way non-live Fedora installation images are set up to boot from USB is for the early init stage to look for a filesystem with a particular label to find the installer itself - if you look at the kernel parameters when booting a Fedora DVD or netinst image written to a USB stick, you'll notice something like inst.stage2=hd:LABEL=Fedora\x2020\x20x86_64, and that's what that means.

When you write a Fedora image to a USB stick with a correct tool, it will apply the correct label to the correct filesystem to make this work. If you use a "universal" tool, it may well not, and you'll be left wondering why the boot fails with an error like Warning: /dev/root does not exist. This is why.

So: don't use these "universal" tools, or at least if they fail, don't report it to your distributor, report it to the tool. For Fedora, the guide to writing images to USB sticks the safe way is here (it's also covered in the Installation Guide, though that's usually a bit behind the wiki page). SUSE has three pages: Linux, Windows and OS X. Arch's page is here. Ubuntu's is here. Mageia covers it along with other media types here - their images are hybrid like Fedora's, SUSE's and Arch's, so the graphical direct write utilities described in the Fedora, SUSE and Arch instructions should work for Mageia as well.