Subject: Re: bug#30311: efi-less grub install fails

From: Marius Bakke <[email-masked]>
Date: Thu, 01 Feb 2018 13:40:22 +0100

Danny Milosavljevic <[email-masked]> writes:

> Hi Ricardo,
>
> On Wed, 31 Jan 2018 19:55:58 +0100
> Ricardo Wurmus <[email-masked]> wrote:
>
>> “guix system init” fails with a configuration file that specifies
>> grub-bootloader (not grub-efi-bootloader).
>> 
>> “grub-install” reports an error about “lib/grub/x86_64-efi/modinfo.sh”
>> not being available.  It suggests passing “--target” or “--device”.
>> 
>> Our invocation of grub-install does not include a “--target” argument.
>> Only after I edited it to pass “--target=i386-pc” did “guix system init”
>> pass.
>
> Hmm, I wonder what happened here.
>
> We've been very careful to keep grub and grub-efi separate.
>
> The entire directory lib/grub/x86_64-efi shouldn't be available in the
> "grub" package output - and I checked on master, it isn't.  Good.
>
> So that leaves automatic target selection as the culprit.
>
> And indeed, there's a call to grub_install_get_default_x86_platform
> in util/grub-install.c .  And that checks for availability of
> /sys/firmware/efi and if it exists, defaults to EFI.
>
> I think it's a bug in grub to do that for a grub which doesn't have EFI
> platform support. :P
>
> We could just always pass i386-pc in install-grub for i386, but then
> we lose i386-ieee1275 (which I have never heard anyone using so maybe
> not so bad).

I agree, passing --target seems like the best workaround for this GRUB
bug.