First, I'd like to clarify some linguistic and conceptual points, in the interests of clear communication:
- Boot modes are BIOS/CSM/legacy or EFI/UEFI. There is no such thing as "MBR boot mode."
- A disk most likely uses either the Master Boot Record (MBR) partition table or the GUID Partition Table (GPT). Either type of disk may boot in either BIOS or EFI mode! It's true that Windows ties MBR disks to BIOS-mode booting and GPT disks to EFI-mode booting, but Linux does not restrict boot modes in this way.
- Whether a computer was running in a BIOS-mode or an EFI-mode boot has nothing to do with how a USB flash drive created by that computer will boot. What's important is the data written to the USB flash drive, and in particular, whether the drive contains BIOS and/or EFI boot loaders. There's nothing magical about a computer that's booted in BIOS mode boot that prevents it from writing an EFI boot loader to a disk, or vice-versa. It's just a string of 1s and 0s being written to the disk.
- The format of a USB flash drive used to install Ubuntu depends on how it's written. If you used
dd
to copy the .iso
file "raw" to the USB drive, then it will use a sort of Frankenstein's Monster format that violates all the rules but somehow still manages to work and to support booting in both BIOS and EFI modes. Don't read too much into what you see from fdisk
, gdisk
, gparted
, or other tools. If you used another tool, it's likely to use a simpler format, but most modern tools will also write both BIOS-mode and EFI-mode boot loaders. This usually says nothing about the boot mode the computer will use when it's fed the disk -- that is controlled by the computer, as explained shortly, assuming that both boot loaders are present. (If one mode's boot loader is omitted or deleted after the fact, then obviously the computer can't boot in that mode, though.)
I'm pretty sure that the error message you reported (error: file '/boot/grub/i386-pc/normal.mod' not found
) is produced only by the BIOS-mode version of GRUB. Most likely the computer started up using some remnant of a BIOS-mode GRUB from a previous install, but the follow-on file is missing or is stored in some way that the old boot loader can't find (at a different location, say).
When you boot a USB flash drive, its boot mode (BIOS vs. EFI) is determined by a complex combination of your firmware's capabilities, how your particular firmware prioritizes different boot modes, your firmware's settings, what boot option you chose, and which boot loader(s) are on the disk. The outcome is difficult to predict when you enable CSM support in your firmware. You'd need to either force the boot medium to contain only one boot loader or know enough about your computer's implementation to force it to boot in a particular way. If left to do what it does by default, Computer A might boot a USB flash drive in BIOS mode whereas Computer B might boot the exact same drive in EFI mode. I cover this in much more detail in a Web page I wrote about the subject.
For this reason, and because EFI mode has some (very modest) advantages over BIOS mode, I generally recommend that EFI mode be used. You can disable the CSM in your firmware setup utility and (usually) be guaranteed an EFI-mode boot, which eliminates a lot of question marks. Given the partition table layout you specified, though, my suspicion is that your computer had been booting in BIOS mode. If I'm right, then changing it to boot in EFI mode is possible by using Microsoft's MBR2GPT utility; however, that carries some risks and is likely to be a trickier path than others you might take.
If you want to preserve your BIOS-mode boot mode, then you should figure out how to boot your Ubuntu medium in BIOS mode -- but that's going to be at least a little system-specific. (Often, but not always, you'll see two boot options for a USB flash drive, one of which begins with the string "UEFI". That's the EFI-mode boot option, and the one that's missing that string will boot the disk in BIOS mode.) If you want to preserve a BIOS-mode boot, then you should NOT try to create an EFI System Partition (ESP) -- either a new one or by converting an existing partition to an ESP. An ESP is used only in an EFI-mode boot, to hold EFI-mode boot loaders. It's useless in a BIOS-mode boot, and if you chance an existing partition's type code to turn it into an ESP, then whatever had been using that partition might start ignoring it, which could cause problems.
Prior to making any decisions, you may want to run Boot-Repair. I wouldn't recommend plunging straight into a repair; instead, use the option to generate a BootInfo Summary and post back with that information. This will make it clearer to the knowledgeable people here how your system is set up, eliminating some of the guesswork. The same tool may be able to install a working boot loader if your installation is otherwise complete. Note that a Boot-Repair disk, just like an Ubuntu installer, can itself be booted in either BIOS mode or EFI mode. I'm not positive, but I think it can install a BIOS-mode GRUB even if it was booted in EFI mode; but if not, and if you want to use BIOS-mode booting, you may need to figure out how to get a Boot-Repair disk to boot in BIOS mode.
If I'm wrong and Windows was previously booting in EFI mode, then your best course of action is likely to ensure that Ubuntu is installed in EFI mode, too. Maybe you accidentally booted the installer in BIOS mode, thus leading to your current problems.