UEFI or Legacy? Which is advised and why?

For most hardware, the boot mode (EFI vs. BIOS) is irrelevant. The drivers Linux loads are identical in either case, as should be the performance. The main caveat here is that the hardware may be initialized in different ways depending on your boot mode, and if the Linux drivers make assumptions about how the hardware is initialized, one way or the other may work better. This sometimes made booting one mode or the other (usually BIOS mode) preferable in the past, but this type of problem is becoming rather rare today. This type of issue mostly affected video hardware and drivers, but in principle it could affect anything.

In your specific case, my suspicion is that you've got "bleeding-edge" hardware with poor Linux support, or perhaps hardware that requires special configuration to work correctly in Linux. Your best bet is to post separate questions about each specific device that's not working to your satisfaction. You can also test with both BIOS-mode and EFI-mode installations to determine empirically which one works better for you, since there is no way to accurately generalize which mode is best.

The correct answer to the question of which mode is best is: It depends. For instance:

  • If you're dual-booting with an OS that's already installed in one mode or the other, it's almost always best to boot Ubuntu (or any other Linux) in the same boot mode as the one that's already in use.
  • Using BIOS/CSM/legacy mode almost always complicates the boot process, as described in detail on this Web page of mine. The result is that enabling BIOS-mode booting makes problems more likely to crop up, especially if you've already got an EFI-mode OS installed.
  • Knowledge of BIOS-mode boot processes is more widespread, which can counter the preceding issue on a single-OS system.
  • As I've described, some hardware initialization issues can favor one boot mode or the other (usually BIOS mode is easier to get working). Such problems seem to be fading in frequency, though.
  • EFI-mode booting is usually a bit faster than BIOS-mode booting, although details differ from one OS to another.
  • Your choice of boot loaders is somewhat different. If you venture beyond the default GRUB, you might prefer something that's available in only one boot mode. Currently, this would tend to favor EFI, since there are some EFI-specific boot managers (gummiboot, rEFIt, and rEFInd) with no BIOS counterparts; but AFAIK the only BIOS-specific boot program for Linux without an EFI port or workalike are BURG and LOADLIN, both of which are (AFAIK) abandoned.
  • Secure Boot (a UEFI-specific feature) can help you control your boot process, preventing unauthorized code from running. If you want to, and if you're willing to put in the effort, you can even use Secure Boot to prevent Windows from running on your computer.
  • On some computers, GPT presents problems when booting in BIOS mode; but GPT is the standard for EFI. GPT offers some minor advantages on sub-2TiB disks, but is required on disks larger than that. (Assuming 512-byte logical sectors; but larger logical sectors are iffy for booting in BIOS mode, and are very rare on internal disks.)

If you need a more specific "BIOS" or "EFI" answer as to which you should use, you'll have to provide much more specific information about your setup.


            Do you need to boot from a
----------- partition more than 2 TiB in size?
|                       |
no                      yes
|                       |
|                       |
|               Do you REALLY need to boot from a
|               partition more than 2 TiB in size?
|   ------------        |
|   |                   yes
|   no                  |
|   |                   |
|----           Find a different solution!
|                       |
|------------------------
|   
Don't use UEFI.

Have I made my point clear?

There is no reason to use UEFI except if you want to boot Windows or if you want to boot from a partition more than 2 TiB is size. And you can always find a solution for the latter.

UEFI brings a heck of a lot of disadvantages with it and no advantages. Don't use it.

You're basically giving away control of your own computer to corporations. Don't do that, that's a bad idea.

You also will have problems with using certain tools which cannot deal with GPT (the only improvement from bios to uefi is support of GPT, everything else is disadvantages and there's many of them). It's not that much of a problem if you use GPT on an external or secondary HDD, but don't boot from it.

If you don't have an HDD bigger than 2 TiB to boot from, there's no problem in the first place. If you do have an HDD with more than 2 TiB to boot from but don't need to have a partition bigger than 2 TiB and don't need to have the beginning of a partition after the first 2 TiB, you also don't need GPT and therefore no UEFI. (So having a 4 TiB HDD with some partitions in the beginning and the last 2 TiB filled with 1 2 TiB is fine and works without GPT.)

As already stated above: This only is about the HDD you boot from. If you have an SSD for booting (which of course can't be that big because such big SSDs don't exist) and only want to use GPT for data storage, that's all fine and you don't need UEFI to access them.

The problem that support for hardware often is needed in form of a firmware for the hardware and a driver for the OS isn't solved by UEFI. It could've been but it isn't. UEFI simply sucks.