From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH 6/6] gnu: Add grub-efi. Date: Mon, 19 Dec 2016 11:48:43 +0100 Message-ID: <87lgvc6vp0.fsf@gnu.org> References: <20161105125511.29383-1-mbakke@fastmail.com> <20161105125511.29383-7-mbakke@fastmail.com> <20161105185803.GA11667@jasmine> <87h97l67kz.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me> <878tsww9ov.fsf@gnu.org> <87vaw087kr.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me> <871syny88o.fsf@gnu.org> <87oa1r8wyv.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me> <871sx73ink.fsf@gnu.org> <87y3zfrd7j.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me> <87y3zdo6cx.fsf@gnu.org> <87lgvdnw23.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52769) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cIvUx-0005kV-5W for guix-devel@gnu.org; Mon, 19 Dec 2016 05:48:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cIvUt-0001Gq-3H for guix-devel@gnu.org; Mon, 19 Dec 2016 05:48:51 -0500 In-Reply-To: <87lgvdnw23.fsf@kirby.i-did-not-set--mail-host-address--so-tickle-me> (Marius Bakke's message of "Sun, 18 Dec 2016 15:36:36 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Marius Bakke Cc: guix-devel@gnu.org Hi Marius, Marius Bakke skribis: > Ludovic Court=C3=A8s writes: > >>> Relatedly, I think the way to build a 'multi-grub' is to have one >>> expression for each supported grub platform, and then consolidate >>> out/lib/grub from each. >> >> So in essence, GRUB itself supports only one platform at a time? > > AFAICT yes. Gentoo works around this by running the build for each > user-specified platform and combining the outputs. Most other distros > just carry separate grub-pc and grub-efi packages. > >>>> Now there are things I didn=E2=80=99t quite get. Apparently you=E2=80= =99re supposed to >>>> have a /boot/efi as a vfat partition, and =E2=80=98grub-install=E2=80= =99 is supposed to >>>> detect it and install the EFI stuff, or so I thought (info "(grub) >>>> Installing GRUB using grub-install"). >>>> >>>> However, =E2=80=98grub-install=E2=80=99 still seems to be installing f= or =E2=80=9Ci386-pc=E2=80=9D >>>> instead of EFI. >>>> >>>> What am I missing? >>> >>> IIRC grub-install will detect and install for the running mode (pc, efi, >>> etc). So in a classic chicken-and-egg situation, you need to be booted >>> with UEFI mode for grub to select the correct installation platform! >> >> My understanding is that it would install for UEFI if it fines >> /boot/efi or if --efi-directory is passed. > > I'm not so sure, but it's been a while since I played around with this. > At least building the 'gnu/system/install.scm' image works fine when > passing --efi-directory (see the bottom two patches from > https://lists.gnu.org/archive/html/guix-devel/2016-12/txtchTym4QVKr.txt ), > and I think it would choose i386-pc even if x86_64-efi was available > since the VM boots in BIOS mode. > > Tangentially, I'm not aware of any way to build a "hybrid" ISO image > using only grub. I've started work on packaging syslinux/isolinux which > is what Debian uses for their hybrid UEFI/BIOS install image. OK. Having checked GRUB=E2=80=99s configure.ac etc., I realize that my suggesti= on of having one =E2=80=98grub=E2=80=99 package doing both EFI and =E2=80=9CPC=E2= =80=9D cannot work. What you suggested initially (a separate =E2=80=98grub-efi=E2=80=99 package) is the = only thing we can do (we could perhaps merge the lib/grub directories as you suggested, but it=E2=80=99s not even clear that this would work.) Thus, I think we need to revert 3eee16130d858ae96510ec1c7d38d31290de2699 and install your initial =E2=80=98grub-efi=E2=80=99 patch. How does that s= ound? If that=E2=80=99s fine with you, please go ahead. Apologies for the misguided suggestion! >> The remaining issue is how to run fsck for vfat. >> >> Currently I still have a preference for something like what I suggested >> at: >> >> https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00095.html >> >> Thoughts? > > This approach looks better than the one I started working on. It's not > clear to me how to pass the device to these procedures, or how > 'check-file-system' will know which checker to use. We should try to > have this in place before 0.13 :-) I=E2=80=99ll see if I can work on it if nobody beats me at it! Thank you! Ludo=E2=80=99.