I've learned the difference between UEFI and BIOS, and it seems that BIOS only boots MBR hard drive while UEFI only boots GPT hard drive. And UEFI cannot boot normal USB flash drive so I have to make the USB flash drive "UEFI-bootable". What is the difference between normal USB drive and "UEFI-bootable" drive? Is it true that a normal USB drive uses MBR while a UEFI-bootable one uses GPT? Can I boot a UEFI-bootable USB flash drive on an old PC with only legacy BIOS support?
Most UEFI implementations can also boot from MBR-partitioned USB drives. They expect a file at
/efi/boot/bootx64.efi to exist. For best compatibility, using the FAT32 filesystem is highly recommended.
An additional BIOS bootcode may exist on the drive. It will be ignored by UEFI.
Bottom line: Hybrid bootable USB drives are possible and do exist.
BIOS and UEFI Essentially both are firmware versions ( a code that acts as a communicator between hardware and System Software) UEFI being the newer and Superior. They both have a very distinguishable feature set.
Simply put UEFI is faster,more secure,and highly compatible and customisable(DISCLAIMER: Customisation should be done by a knowledgeable person ,else it may corrupt your System) with newer H/W.
So if your OS supports UEFI enabled services, definately go for UEFI over Legacy mode(Although most OS[System Software] ,being backward compatible will work with Legacy as well).
UEFI provides much more infrastructure at the firmware level for handling system boot. It’s nowhere near as simple as BIOS. Unlike BIOS, UEFI certainly does understand, to varying degrees, the concepts of ‘disk partitions’ and ‘bootloaders’ and ‘operating systems’.
You can sort of look at the BIOS boot process, and look at the UEFI process, and see how the UEFI process extends various bits to address specific problems.
The BIOS/MBR approach to finding the bootloader is pretty janky, when you think about it. It’s very ‘special sauce’: this particular tiny space at the front of the disk contains magic code that only really makes much sense to the system firmware and special utilities for writing it. There are several problems with this approach.
- It’s inconvenient to deal with – you need special utilities to write the MBR, and just about the only way to find out what’s in one is to dd the contents out and examine them.
- As noted above, the MBR itself is not big enough for many modern bootloaders. What they do is install a small part of themselves to the MBR proper, and the rest to the empty space on the disk between where the conventional MBR ends and the first partition begins. There’s a rather big problem with this (well, the whole design is a big problem, but never mind), which is that there’s no reliable convention for where the first partition should begin, so it’s difficult to be sure there’ll be enough space. One thing you usually can rely on is that there won’t be enough space for some bootloader configurations.
- The design doesn’t provide any standardized layer or mechanism for selecting boot targets other than disks…but people want to select boot targets other than disks. i.e. they want to have multiple bootable ‘things’ – usually operating systems – per disk. The only way to do this, in the BIOS/MBR world, is for the bootloaders to handle it; but there’s no widely accepted convention for the right way to do this. There are many many different approaches, none of which is particularly interoperable with any of the others, none of which is a widely accepted standard or convention, and it’s very difficult to write tooling at the OS / OS installation layer that handles multiboot cleanly. It’s just a very messy design.
- The design doesn’t provide a standard way of booting from anything except disks. We’re not going to really talk about that in this article, but just be aware it’s another advantage of UEFI booting: it provides a standard way for booting from, for instance, a remote server.
- There’s no mechanism for levels above the firmware to configure the firmware’s boot behaviour.
To answer your question: USB are usually GPT untill other specified or formatted, atleast the newer ones. It is common that it is a problem if you boot UEFI usb on legacy bios. But that depends on the bios and its version aswell. So it can still work.