Hi, I've had some troubles when a windows update renumbered my partitions. I managed to fix the problems, but it seems that there may be a way of preventing future headaches, which brings me here.
I have two instances of grub registered on my UEFI system, one from Arch Linux (this is the one I usually use) and one from an Ubuntu install (I use this as a rescue system). After the Windows update, when I selected the Arch grub from the UEFI boot menu, it failed to find its /boot partition. I think the reason was that this partition now had a different partition number from when it was installed. The Ubuntu system on the other hand was working fine, even though its /boot partition had also been assigned a different partition number. The arch grub was installed via sudo grub-install -v --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck My naive understanding of the installation process is that a .efi file is copied onto the efi partition into a subfolder of /EFI, and efibootmgr registers it with the UEFI system (whatever that means). Now in /EFI/ubuntu I find: $ ls -lh /boot/efi/EFI/ubuntu/ total 3.6M drwxr-xr-x 2 root root 4.0K Jul 19 2016 fw -rwxr-xr-x 1 root root 63K Jul 19 2016 fwupx64.efi -rwxr-xr-x 1 root root 129 Jul 19 2016 grub.cfg -rwxr-xr-x 1 root root 1.1M Jul 19 2016 grubx64.efi -rwxr-xr-x 1 root root 1.3M Jul 19 2016 MokManager.efi -rwxr-xr-x 1 root root 1.3M Jul 19 2016 shimx64.efi On the other hand, for archlinux I find: $ ls -lh /boot/efi/EFI/arch_grub/ total 124K -rwxr-xr-x 1 root root 120K Sep 19 17:06 grubx64.efi I would like to better understand how the start-up chain works, i.e. who loads what and how do they know where to find it. My guess would be that the Ubuntu system still booted because its grubx64.efi was generated differently: it's 1.1M big, where the Arch one is only 120k. And because there is a grub.cfg in the ubuntu folder with these contents: search.fs_uuid cc89543d-0e5f-416b-b8cb-f31eec1624d8 root hd0,gpt11 set prefix=($root)'/@/boot/grub' configfile $prefix/grub.cfg As a matter of fact, the fs_uuid does not reside on (hd0,gpt11) but on (hd0,gpt10). So my guess would be that the grub boot partition is hardcoded in the Arch grubx64.efi while the Ubuntu includes enough modules to search for the partition by uuid (thus the larger file size). Is this the case? If so, how do I have to call grub-install (or grub-mkimage or whatever generates grubx64.efi) to get the Ubuntu style behaviour? With kind regards, -- Philipp G. Haselwarter _______________________________________________ Help-grub mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-grub
