Code review comment for ~juliank/grub/+git/ubuntu:resilient-boot

Revision history for this message
Julian Andres Klode (juliank) wrote :

In any case we still need the wrapper script - only the block that runs grub-install needs to be changed to pass the devices to grub-install.

However, there is another problem with passing a list of devices to grub-install: We can't tell you which device failed to install, so if we reprompt you on a failure, you won't know what you need to do. That's why grub-pc runs them in a loop too.

I'm not sure how to proceed. Modifying grub-install to take a list of devices and loop over them and install to all of them seems out of the question, as it has a lot of global state that needs to be stored in a per-device array, function signatures need to be changed to accept arrays of new structs instead of multiple arguments, and getting this sorted out before focal does not seem feasible.

So I was thinking we could pass it a list of all ESPs for each invocation, and then we only remove entries that do not belong to any of those ESPs. Then each grub-install invocation will only change it's own boot entry, essentially. That should be strictly a subset of the other work, and hence have a short turnaround time.

Still does not solve that you don't have an *ordered* list in the debconf entry (multiselect entries are not orderable by the user). But I guess we can give it a distinction between primary and fallback ESPs at the very least, if /boot/efi is mounted.

« Back to merge proposal