-
-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make bootloader updates on UEFI-based systems work #299
base: master
Are you sure you want to change the base?
Conversation
I don't like that I have the bootloader ID hardcoded to |
please don't. we should figure out how to get the debian packages to do the right thing, without grml-debootstrap starting grub commands. |
Which grub command are you referring to? The I think SystemBuildTools are supposed to run that command.
Therefore, I am pretty sure only the system build tool is responsible for setting up the bootloader, which requires running bootloader installation commands. |
The postinst used by grub-efi-amd64 autodetects the bootloader ID from the I'm not quite sure how |
Based on my research, you can only install GRUB on legacy BIOS systems without running grub-install manually if you have grub-pc installed. That isn't possible with this PR since you can't have grub-pc and grub-efi-ARCH co-installed, so my PR will have to leave the grub-install commands that install the legacy BIOS bootloader. However, I think I can get the EFI bootloader to be handled automatically by the Debian package, without having to explicitly call grub-install. So I'll do that. (I should also be looking into how to allow grub-pc and grub-efi-ARCH to be co-installed, but that's a potentially large task that has to be handled in Debian upstream.) |
Alright, this works on my system. I didn't touch the |
Please use, review the following simplification, if sane
|
Avoid repetitive |
@zeha Looking through the code, I can't figure out why |
Fixes #297. Quick summary of changes:
grub-install
calls,--bootloader-id=debian
and--force-extra-removable
are used. This ensures the bootloader is installed both to the distro-specific path (/boot/efi/EFI/debian
) and to the removable media path.--removable
is removed from these calls as it is no longer needed and in fact prevents the normal bootloader location from being installed to. Its job is done by--force-extra-removable
now.--vmefi
is enabled,grub-pc-bin
is installed rather thangrub-pc
, allowing the BIOS bootloader to be installed but not allowing it to be automatically updated. This is to allow installinggrub-efi-ARCH
, which allows automatically updating the EFI bootloader. (Sadly the two cannot be installed at the same time, which is why this change is necessary. If they could be installed at the same time, that would be best, but Debian isn't capable of that at the moment.)grub-efi-ARCH
is installed along withgrub-efi-ARCH-signed
.grub2/force_efi_extra_removable
, is documented at https://wiki.debian.org/UEFI#Force_grub-efi_installation_to_the_removable_media_path.