grub-install, at least on 14.04 and 15.04, seems to hardcode the path "EFI/ubuntu" into all secureboot images. This has the effect that regardless of the boot entry that is selected in the EFI interface, grub always reads (ESP)/EFI/ubuntu/grub.cfg and continues to boot from the volume referenced there.
The binary /EFI/<bootloader-id>/grubx64.efi always contains the hardcoded string "EFI/ubuntu", which seems to be covered by canonical's signature and thus unchangeable. If secure boot is deactivated, editing the grubx64.efi binary to reflect the correct path fixes the issue for me; i.e. if the bootloader is in EFI/mysecondubuntu, change EFI/ubunt2/grubx64.efi so that the string "EFI/ubuntu" becomes "EFI/ubunt2" (better keep the length the same in order to not break the binary alignment). This only works with secure boot disabled in the firmware; otherwise the signature becomes invalid. However, when grub-install is invoked using --no-uefi-secure-boot, it gets even more confusing: grubx64.efi doesn't contain the hardcoded string anymore, but it seems as if grub.cfg is not even considered anymore – grub directly continues to boot from some hardcoded boot volume which I am unable to modify! All of this makes it almost impossible to install two versions of Ubuntu on a single machine. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1247933 Title: unable to persist bootloader id To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1247933/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
