After much experimentation I think this is the answer:
The EFI system partition (usually mounted at /boot/efi/
) doesn't hold many files, unless e.g. GRUB is stored directly there instead of /boot/grub/
. The contents usually don't change, so there is no need to RAID the partition. Having multiple copies of the partition across different disks would also require the UEFI boot entries to be set with efibootmgr
; usually GRUB initialises this based on the mounted partition of /boot/efi/
.
So it seems that it's both not needed, and not easy to do.
The hard disk is definitely set up for BIOS-style booting. Specific evidence of this includes:
- The partition table is MBR. Although it's theoretically possible to boot in EFI mode from an MBR partition table, to the best of my knowledge Windows does not support this configuration. Certainly its installer doesn't; the Windows installer supports MBR-on-BIOS or GPT-on-EFI, but not MBR-on-EFI or GPT-on-BIOS.
- There's no ESP on /dev/sda. (There are EFI boot files on /dev/sdb1, but that looks like a USB flash drive, not your regular boot disk.)
- The Boot Info Script output identifies GRUB as being installed in the MBR of /dev/sda. This is consistent with a BIOS-mode GRUB installation.
- The Boot Info Script output has identified /Windows/System32/winload.exe as a boot file on /dev/sda2. If this were an EFI installation of Windows, you'd see a reference to winload.efi somewhere.
Thus, whatever the source of the problem, it doesn't seem to have anything to do with EFI; it's a straight-up GRUB-on-BIOS problem.
The biggest clue I see is this, from the Boot Info Script output:
=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of
the same hard drive for core.img. core.img is at this location and looks
for (,msdos6)/root/grub on this drive.
Note in particular the reference to (,msdos6)/root/grub
. Later in the Boot Info Script output, there's a list of boot files on /dev/sda6 ((,msdos6)
in GRUB-speak). This list includes /boot/grub/grub.cfg
, but there's no mention of anything in the root
directory. In fact, the root
directory (not to be confused with the /
directory, whose name is pronounced "root") is the superuser's home directory, and it doesn't ordinarily hold boot files. Thus, I suspect that GRUB was mis-installed. Perhaps you used options to grub-install
that you didn't mention and that were inappropriate, or perhaps there's a bug in the installation script. In any event, I recommend re-installing GRUB using the usual procedures for doing this on a BIOS-based computer. Note, however, that if your emergency system boots in EFI mode, that could create complications, so you should be sure to boot your emergency system in BIOS mode.
You can check your boot mode in Linux by looking for the /sys/firmware/efi
directory. If it's present, you've booted in EFI mode. If it's absent, you've probably booted in BIOS mode (although there are conditions when that file will be absent even though you've booted in EFI mode).
Best Answer
When Windows is installed in Legacy BIOS (MBR) mode you do not need to create an EFI partition. When Windows is installed in UEFI mode you already do have an EFI partition.
Then you have to install ubuntu in UEFI mode - the existing EFI partition will be used.
Learn more : https://help.ubuntu.com/community/UEFI