Wednesday, August 27, 2014

grub loaders in /boot/efi/EFI can't boot windows, /boot/efi/EFI/ubuntu/grubx64.efi can, grub installs the one that can't

I'm running ubuntu 18.04 (kubuntu, but who's counting) on a dual-boot system. Its grub menu was always able to boot windows 7, but suddenly, the windows entry in grub no longer works. When I select windows from the grub menu, the screen goes black and nothing happens. I can still boot windows directly from my system's boot menu if I'm quick enough on the trigger to bring that up. But something has happened to my grub setup.


I tried running 'sudo update-grub', which seemed to rerun the probe successfully, but the behavior is the same.


I don't have Secure boot enabled (don't even see it as an option in my BIOS), and I've made sure to shutdown Windows 7 completely (no hibernation or sleep mode).


More info:


I also have the refind boot manager installed on this machine, and if I switch that to be first in the boot order, it's able to boot windows 7 or grub. But the Refind menu shows multiple entries for ubuntu, and the first one it shows launches EFI/Boot/fbx64.efi and the second one launches EFI/Boot/bootx64.efi. Neither of those can boot Windows. In fact, when I select one of them and launch ubuntu from there, it puts ubuntu back into the first position in my BIOS's boot order - and I'm back where I started.


But if I arrow over in Refind to the ubuntu entry for /ubuntu/Boot/grubx64.efi, not only is that one able to boot ubuntu or Windows 7, it also leaves Refind in place at the top of my boot order. So this problem seems to be caused by the new efi modules having been put into /EFI/Boot and having become the default grub loader. I don't know what fbx64 is, but is it supposed to be the primary grub boot loader? If not, how do I get grubx64.efi to be the default? Is it simply a matter of copying the grubx64.efi module into /EFI/Boot? Is that safe - would I need to rename it bootx64.efi to match what's there?


Here's what's in my /boot/efi (all the ubuntu stuff seems to be dated Sep 13 09:39 - presumably the last time ubuntu updated grub). Bootx64 matches shimx64 in size - I don't need the shim bootloader. Could the ubuntu update have mistakenly copied that there?:


/boot/efi/EFI/Boot
-rwx------ 1 root root 1334816 Sep 13 09:39 bootx64.efi
-rwx------ 1 root root 1213032 Sep 13 09:39 fbx64.efi
/boot/efi/EFI/ubuntu
-rwx------ 1 root root 108 Sep 13 09:39 BOOTX64.CSV
drwx------ 2 root root 1024 Jan 30 2017 fw
-rwx------ 1 root root 71400 May 22 10:48 fwupx64.efi
-rwx------ 1 root root 126 Sep 13 09:39 grub.cfg
-rwx------ 1 root root 1116024 Sep 13 09:39 grubx64.efi
-rwx------ 1 root root 1269496 Sep 13 09:39 mmx64.efi
-rwx------ 1 root root 1334816 Sep 13 09:39 shimx64.efi

No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...