Is EFI booting something hardware specific?
Yes. Some implementations, especially older ones or those from OEM-locked-down motherboards are more likely to be restricted or buggy.
Do the HDDs need to have a GPT partition table in order for them to boot in UEFI mode?
Technically no, but in your case, "probably, plus you need some other things(notably EFI files and EFI variables)". Here's the long answer (also for anyone else stumbling upon this in the future):
A frequent question that people ask is "Can I UEFI boot from an MBR disk?" The answer is "yes, but it's very tricky." While it's technically possible in the right environment, many things will prevent you from doing so, such as a UEFI environment that adheres very tightly to the spec, or the Windows installer that will insist on installing to the correct type of partition table.
First things first, optical media is not part of this discussion at all. It generally uses a system like ISO9660 or UDF, which lies completely outside of the MBR/GPT realm.
Secondly, removable media tends to be handled a little bit differently than fixed disks. Most UEFI implementations will be much more tolerant of removable ad-hoc UEFI bootable disks than they will be of fixed disks.
That being said, here's how a typical UEFI system will enumerate the bootable devices:
There are a few other things not covered by the above, like Option ROMs, PXE boot, etc.
And now some observations on the above process. For starters, optical drives tend to show up all the time, regardless of boot mode. This is usually because neither BIOS nor UEFI systems want to wait for the disc to spin up before continuing with boot. They also tend to show as bootable in both modes simultaneously, so if you have a disc that can boot both ways, you can select one or the other from your BIOS's boot menu.
Because it's a bit hard to programmatically determine whether a drive (fixed or removable) contains valid MBR bootcode, if a system has BIOS or CSM boot available, it tends to just allow booting from any of the disks currently present. However, this is probably the answer to one part of your issue: While most systems should treat a USB stick almost like a fixed disk, perhaps your system is treating it differently. For example, some BIOSes will treat a USB device exactly like a fixed disk, and you may need to adjust the "hard disk boot order" or some such control in the BIOS. Or perhaps your BIOS is locked down or broken, and does not realize that it can be booted in BIOS mode. Some additional pointers: Try pluggin the drive into a USB 2.0 instead of 3.0 port, and enable USB compatiblity options in the BIOS. Some BIOSes have trouble natively working with devices behind third-party USB or ATA controllers, like you find on machines that don't have USB3 integrated into the chipset.
With the advent of EFI, it's now easy for a system to determine what boot devices should be available (by looking at the EFI variables containing boot entries), as well as determine if a specific drive actually contains bootcode (by looking for the presence of a BOOTX64.EFI file). However, this leads to some interesting caveats. While officially an EFI system is supposed to only look for EFI files in GPT disks, most of the time it'll look elsewhere as well. For example, you can copy a Windows 7 or newer installation disc to a FAT32 USB stick, and it'll probably boot just fine in EFI mode. The UEFI is smart enough to check for the presence of the "\EFI\BOOT\BOOTx64.EFI" file in all removable disks, even though no corresponding EFI variable is present in the NVRAM. Most UEFI systems will also boot from an MBR disk just fine, as long as there's EFI variables with the details about where to go and what to do. For example, right now I'm using a Dell laptop that came from the factory with Windows 8.1 booting in UEFI mode with Secure Boot, but the disk was partitioned as MBR.
Some other funny things that can happen: If you install an EFI aware OS like Windows or Ubuntu, it'll create the appropriate EFI variables when installing its bootloader. Then, if you remove or wipe the drive, the system will have the EFI variables, complete with the name of the OS, but cannot boot to them because it cannot find the disk that the variables reference. Also, if you take a fully functioning EFI-bootable disk from one computer to another, it may not boot as seamlessly as an MBR one will. Many UEFI implementations will not allow you to even attempt booting from a fixed disk in UEFI mode if corresponding variables are not present in the NVRAM. This is why your RAID array or other fixed hard drives may not appear in the boot menu as UEFI entries until they have all the proper structures in place, like the EFI variables.
However, given your exact set of issues, I'd chalk most of your problems up to a broken BIOS more than a problem with your setup. Notably, for a USB drive to appear as a UEFI device but not a BIOS device is very strange. Have you turned off Secure Boot and enabled any CSM or BIOS boot options? Also, for your optical drive to show up as a BIOS option but not a UEFI option seems a bit strange, though not unheard of.
Then how do I boot from a DVD in UEFI mode? – joaocandre – 2013-03-08T22:27:55.453
1@joaocandre the EFI shell itself is compatible with a typical bootable DVD. CD/DVDs do not use MBR/GPT style partition schemes, so they are not affected by this change. The EFI shell will look for the relevant firmware images on the disk, and then proceed to boot using the ones it found. – Breakthrough – 2013-03-08T22:42:15.153
Problem is, when I set boot mode to "UEFI" only in BIOS, I cannot boot from the DVD drive. – joaocandre – 2013-03-08T22:46:11.003
@joaocandre you might want to look at this Technet article (Installing Windows to an EFI-Based Computer) or this forum discussion (Force Windows 7 install DVD to do an EFI Boot).
– Breakthrough – 2013-03-08T23:22:25.523It's not really about installing Windows, but apparently it depends on the DVD inserted on the drive. The Windows 8 DVD I was trying with does not want to boot in UEFI, while Ubuntu live CD can. – joaocandre – 2013-03-09T14:03:09.860
@joaocandre yes, for some reason the Windows 8 DVD UEFI images are corrupted. I believe the Windows 7 ones are still okay, as well as the Ubuntu images. Although as you know by now, details can be found in the aforementioned links. – Breakthrough – 2013-03-09T15:39:50.787
1As a practical matter, at least some EFIs can boot from MBR disks. Certainly some (but not all) of my EFI-based computers can boot from USB flash drives partitioned with MBR. I don't believe I've tested with hard disks, though. Despite its 2000-page length, there's a lot omitted from the EFI spec, and differences in the rules that specific EFIs use to determine boot mode (BIOS/legacy vs. EFI) have slipped into those cracks, which explains inconsistencies in whether specific DVDs or hard disks boot in BIOS/legacy vs. EFI mode. – Rod Smith – 2013-03-09T23:13:38.447
@Breakthrough: "for some reason the Windows 8 DVD UEFI images are corrupted" - I remember reading somewhere that it was the DVD created by the Win8 Upgrade Assistant that had this problem, not the retail DVDs or the ones available though MSDN. Is that your experience as well? – Karan – 2013-03-10T00:15:46.213