all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.