* EFI GRUB configuration ignores platform, has issues
@ 2017-04-22 3:34 Isaac van Bakel
2017-04-22 8:36 ` Marius Bakke
0 siblings, 1 reply; 3+ messages in thread
From: Isaac van Bakel @ 2017-04-22 3:34 UTC (permalink / raw)
To: help-guix
Hi Guix,
I've been wrestling with a fresh real install for the past day or so.
Currently, the system seems to initialize fine with my config, with the
exception of GRUB.
I wanted to get grub-efi working, so I added two things on top of the
bare-bones config:
(use-modules (gnu packages)) at the start.
(grub (specification->package "grub-efi")) to my grub-configuration.
This all seems to work about as I expect - the grub install doesn't
complain about a lack of a BIOS partition, and it tries its best.
The issue seems to be in part that grub-install for EFI tries to use
i386-pc for a platform, even when I pass --system=x86_64-linux to guix
system init, and the USB is a x86_64 one.
It tries to access a directory in /gnu/store
/<grub-efi>/lib/grub/i386-pc which doesn't exist, and promptly fails.
If I copy over the x86_64 folder to i386-pc, the install gets past this
point, and I can go on to boot as (apparently) normal.
However, I'm not sure whether to trust the boot totally, and I'm worried
about it being unreproducable without manual effort.
Is there anything I can do?
Thanks,
Isaac
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: EFI GRUB configuration ignores platform, has issues
2017-04-22 3:34 EFI GRUB configuration ignores platform, has issues Isaac van Bakel
@ 2017-04-22 8:36 ` Marius Bakke
2017-04-22 15:22 ` Isaac van Bakel
0 siblings, 1 reply; 3+ messages in thread
From: Marius Bakke @ 2017-04-22 8:36 UTC (permalink / raw)
To: Isaac van Bakel, help-guix
[-- Attachment #1: Type: text/plain, Size: 2624 bytes --]
Hello Isaac!
Isaac van Bakel <ivb@vanbakel.io> writes:
> Hi Guix,
>
> I've been wrestling with a fresh real install for the past day or so.
>
> Currently, the system seems to initialize fine with my config, with the
> exception of GRUB.
> I wanted to get grub-efi working, so I added two things on top of the
> bare-bones config:
>
> (use-modules (gnu packages)) at the start.
>
> (grub (specification->package "grub-efi")) to my grub-configuration.
>
> This all seems to work about as I expect - the grub install doesn't
> complain about a lack of a BIOS partition, and it tries its best.
> The issue seems to be in part that grub-install for EFI tries to use
> i386-pc for a platform, even when I pass --system=x86_64-linux to guix
> system init, and the USB is a x86_64 one.
> It tries to access a directory in /gnu/store
> /<grub-efi>/lib/grub/i386-pc which doesn't exist, and promptly fails.
Grub will try to guess the target platform automatically. Since the
installation image is not yet UEFI enabled[0], your system has booted in
BIOS mode, and grub tries to install the BIOS payload (which is called
i386-pc even on 64-bit platforms).
> If I copy over the x86_64 folder to i386-pc, the install gets past this
> point, and I can go on to boot as (apparently) normal.
Do you mean copy the "/gnu/store/<grub-efi>/lib/grub/x86_64-efi" folder
to "/gnu/store/<grub-efi>/lib/grub/i386-pc"? The store is read-only for
good reasons and you should never do this under normal circumstances.
> However, I'm not sure whether to trust the boot totally, and I'm worried
> about it being unreproducable without manual effort.
I find it interesting that it worked at all. Does '/sys/firmware/efi'
exist on the booted system? If that is the case, further invocations of
`grub-install` (which is called when running `guix system reconfigure`)
should detect the EFI platform and install the appropriate payload.
Otherwise, I would guess it has installed a BIOS bootloader, in which
case you should switch to the regular "grub" package. Both of these
approaches should be future-proof if they work after `guix system
reconfigure` on the booted system.
The safest approach to a native UEFI GuixSD system currently is booting
another UEFI enabled Linux image, installing the Guix binary inside the
live environment, and do `guix system init` from there. It's pretty
involved, but we hope to have UEFI support in the official images Soon™.
Hope this helps, and sorry for the confusion!
[0] https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00407.html
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: EFI GRUB configuration ignores platform, has issues
2017-04-22 8:36 ` Marius Bakke
@ 2017-04-22 15:22 ` Isaac van Bakel
0 siblings, 0 replies; 3+ messages in thread
From: Isaac van Bakel @ 2017-04-22 15:22 UTC (permalink / raw)
To: Marius Bakke, help-guix
Hi Marius,
On 04/22/2017 09:36 AM, Marius Bakke wrote:
> Hello Isaac!
>
> Isaac van Bakel <ivb@vanbakel.io> writes:
>
>> ...
>> The issue seems to be in part that grub-install for EFI tries to use
>> i386-pc for a platform, even when I pass --system=x86_64-linux to guix
>> system init, and the USB is a x86_64 one.
>> It tries to access a directory in /gnu/store
>> /<grub-efi>/lib/grub/i386-pc which doesn't exist, and promptly fails.
> Grub will try to guess the target platform automatically. Since the
> installation image is not yet UEFI enabled[0], your system has booted in
> BIOS mode, and grub tries to install the BIOS payload (which is called
> i386-pc even on 64-bit platforms).
Ah, that would explain my issues. It's interesting that it tries to use
the BIOS payload with the grub-efi package, though.
>> If I copy over the x86_64 folder to i386-pc, the install gets past this
>> point, and I can go on to boot as (apparently) normal.
> Do you mean copy the "/gnu/store/<grub-efi>/lib/grub/x86_64-efi" folder
> to "/gnu/store/<grub-efi>/lib/grub/i386-pc"? The store is read-only for
> good reasons and you should never do this under normal circumstances.
Oh dear! Nothing a clean install won't fix, I hope.
>> However, I'm not sure whether to trust the boot totally, and I'm worried
>> about it being unreproducable without manual effort.
> I find it interesting that it worked at all. Does '/sys/firmware/efi'
> exist on the booted system? If that is the case, further invocations of
> `grub-install` (which is called when running `guix system reconfigure`)
> should detect the EFI platform and install the appropriate payload.
Sadly, it's missing. The /boot/EFI folder seems to be missing a lot of
essential content as well, so I guess I'm using a BIOS bootloader.
> ...
> The safest approach to a native UEFI GuixSD system currently is booting
> another UEFI enabled Linux image, installing the Guix binary inside the
> live environment, and do `guix system init` from there. It's pretty
> involved, but we hope to have UEFI support in the official images Soon™.
Good to know. I was meaning to install another libre distro alongside
GuixSD, just in case, but I might as well reorder the steps now to get
it working first.
> Hope this helps, and sorry for the confusion!
It helps a lot, thanks!
Isaac
>
> [0] https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00407.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-04-22 15:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-22 3:34 EFI GRUB configuration ignores platform, has issues Isaac van Bakel
2017-04-22 8:36 ` Marius Bakke
2017-04-22 15:22 ` Isaac van Bakel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).