* bug#28768: guix system vm Failed to install GRUB (EFI)
@ 2017-10-09 19:50 Oleg Pykhalov
2017-10-10 19:08 ` Marius Bakke
0 siblings, 1 reply; 6+ messages in thread
From: Oleg Pykhalov @ 2017-10-09 19:50 UTC (permalink / raw)
To: 28768
Hello Guix,
EFI bootloader configuration causes problems to test with 'system vm'
before 'reconfigure'.
To reproduce it replace default bootloader expression with following
snippet in gnu/system/examples/vm-image.tmpl
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")))
--8<---------------cut here---------------start------------->8---
[ 0.909226] EXT4-fs (vda1): mounted filesystem with ordered data mode. Opts: (null)
installing bootloader...
/gnu/store/b1kdjsmwkphwh06gcm2ym0d0zh5wf4gc-grub-efi-2.02/sbin/grub-install: error: /gnu/store/b1kdjsmwkphwh06gcm2ym0d0zh5wf4gc-grub-efi-2.02/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
ERROR: In procedure scm-error:
ERROR: failed to install GRUB (EFI)
Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
GNU Guile 2.2.2
Copyright (C) 1995-2017 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> [ 1.344109] tsc: Refined TSC clocksource calibration: 3392.250 MHz
[ 1.344677] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x30e5b54dbe0, max_idle_ns: 440795272496 ns
C-c C-c
--8<---------------cut here---------------end--------------->8---
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#28768: guix system vm Failed to install GRUB (EFI)
2017-10-09 19:50 bug#28768: guix system vm Failed to install GRUB (EFI) Oleg Pykhalov
@ 2017-10-10 19:08 ` Marius Bakke
2017-10-12 8:46 ` Ludovic Courtès
0 siblings, 1 reply; 6+ messages in thread
From: Marius Bakke @ 2017-10-10 19:08 UTC (permalink / raw)
To: Oleg Pykhalov, 28768
[-- Attachment #1: Type: text/plain, Size: 600 bytes --]
Oleg Pykhalov <go.wigust@gmail.com> writes:
> EFI bootloader configuration causes problems to test with 'system vm'
> before 'reconfigure'.
This is because `guix system vm` is not currently UEFI enabled, so GRUB
tries to install for a normal PC BIOS.
The fix would be to make the various QEMU invocations in (gnu system vm)
take a #:firmware parameter that passes something along the lines of
'-bios #$(file-append ovmf "/share/ovmf/firmware/ovmf_x64.bin")' to the
QEMU command-line, and update other scripts to take advantage.
It's on my ever-growing TODO list and would be nice to have indeed.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#28768: guix system vm Failed to install GRUB (EFI)
2017-10-10 19:08 ` Marius Bakke
@ 2017-10-12 8:46 ` Ludovic Courtès
2017-10-19 18:21 ` Marius Bakke
2017-10-19 20:32 ` Oleg Pykhalov
0 siblings, 2 replies; 6+ messages in thread
From: Ludovic Courtès @ 2017-10-12 8:46 UTC (permalink / raw)
To: Marius Bakke; +Cc: 28768
[-- Attachment #1: Type: text/plain, Size: 816 bytes --]
Marius Bakke <mbakke@fastmail.com> skribis:
> Oleg Pykhalov <go.wigust@gmail.com> writes:
>
>> EFI bootloader configuration causes problems to test with 'system vm'
>> before 'reconfigure'.
>
> This is because `guix system vm` is not currently UEFI enabled, so GRUB
> tries to install for a normal PC BIOS.
>
> The fix would be to make the various QEMU invocations in (gnu system vm)
> take a #:firmware parameter that passes something along the lines of
> '-bios #$(file-append ovmf "/share/ovmf/firmware/ovmf_x64.bin")' to the
> QEMU command-line, and update other scripts to take advantage.
Perhaps by adding it to <virtual-machine> records we’d make it less
annoying to pass around? Or are there other places that would still
need extra care?
Another option, in the meantime is this:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 735 bytes --]
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 273a895be..f763b430b 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -565,6 +565,14 @@ environment with the store shared with the host. MAPPINGS is a list of
user-file-systems)))
(operating-system (inherit os)
+
+ ;; XXX: Until we run QEMU with UEFI support (with the OVMF firmware),
+ ;; force the traditional i386/BIOS method.
+ ;; See <https://bugs.gnu.org/28768>.
+ (bootloader (bootloader-configuration
+ (bootloader grub-bootloader)
+ (target "/dev/vda")))
+
(initrd (lambda (file-systems . rest)
(apply base-initrd file-systems
#:volatile-root? #t
[-- Attachment #3: Type: text/plain, Size: 114 bytes --]
That’s what I do manually anyway.
WDYT? If that’s fine with you, I can commit it.
Thanks,
Ludo’.
^ permalink raw reply related [flat|nested] 6+ messages in thread
* bug#28768: guix system vm Failed to install GRUB (EFI)
2017-10-12 8:46 ` Ludovic Courtès
@ 2017-10-19 18:21 ` Marius Bakke
2017-10-19 21:25 ` Ludovic Courtès
2017-10-19 20:32 ` Oleg Pykhalov
1 sibling, 1 reply; 6+ messages in thread
From: Marius Bakke @ 2017-10-19 18:21 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 28768
[-- Attachment #1: Type: text/plain, Size: 1923 bytes --]
Ludovic Courtès <ludo@gnu.org> writes:
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> Oleg Pykhalov <go.wigust@gmail.com> writes:
>>
>>> EFI bootloader configuration causes problems to test with 'system vm'
>>> before 'reconfigure'.
>>
>> This is because `guix system vm` is not currently UEFI enabled, so GRUB
>> tries to install for a normal PC BIOS.
>>
>> The fix would be to make the various QEMU invocations in (gnu system vm)
>> take a #:firmware parameter that passes something along the lines of
>> '-bios #$(file-append ovmf "/share/ovmf/firmware/ovmf_x64.bin")' to the
>> QEMU command-line, and update other scripts to take advantage.
>
> Perhaps by adding it to <virtual-machine> records we’d make it less
> annoying to pass around? Or are there other places that would still
> need extra care?
Sorry for late response, still going through a backlog! I think
<virtual-machine> should be sufficient, did not do a lot of research.
> Another option, in the meantime is this:
>
> diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
> index 273a895be..f763b430b 100644
> --- a/gnu/system/vm.scm
> +++ b/gnu/system/vm.scm
> @@ -565,6 +565,14 @@ environment with the store shared with the host. MAPPINGS is a list of
> user-file-systems)))
>
> (operating-system (inherit os)
> +
> + ;; XXX: Until we run QEMU with UEFI support (with the OVMF firmware),
> + ;; force the traditional i386/BIOS method.
> + ;; See <https://bugs.gnu.org/28768>.
> + (bootloader (bootloader-configuration
> + (bootloader grub-bootloader)
> + (target "/dev/vda")))
> +
> (initrd (lambda (file-systems . rest)
> (apply base-initrd file-systems
> #:volatile-root? #t
>
> That’s what I do manually anyway.
>
> WDYT? If that’s fine with you, I can commit it.
LGTM!
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#28768: guix system vm Failed to install GRUB (EFI)
2017-10-19 18:21 ` Marius Bakke
@ 2017-10-19 21:25 ` Ludovic Courtès
0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2017-10-19 21:25 UTC (permalink / raw)
To: Marius Bakke; +Cc: 28768-done
Hello!
Marius Bakke <mbakke@fastmail.com> skribis:
> Ludovic Courtès <ludo@gnu.org> writes:
[...]
>> Another option, in the meantime is this:
>>
>> diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
>> index 273a895be..f763b430b 100644
>> --- a/gnu/system/vm.scm
>> +++ b/gnu/system/vm.scm
>> @@ -565,6 +565,14 @@ environment with the store shared with the host. MAPPINGS is a list of
>> user-file-systems)))
>>
>> (operating-system (inherit os)
>> +
>> + ;; XXX: Until we run QEMU with UEFI support (with the OVMF firmware),
>> + ;; force the traditional i386/BIOS method.
>> + ;; See <https://bugs.gnu.org/28768>.
>> + (bootloader (bootloader-configuration
>> + (bootloader grub-bootloader)
>> + (target "/dev/vda")))
>> +
>> (initrd (lambda (file-systems . rest)
>> (apply base-initrd file-systems
>> #:volatile-root? #t
>>
>> That’s what I do manually anyway.
>>
>> WDYT? If that’s fine with you, I can commit it.
>
> LGTM!
Pushed as 9b396c0cabb086746cbe4ec20d4ae0d79962d758 (along with the
missing #:use-module clause that Oleg reported.)
I’m closing this bug. We can create a new issue when we add support for
UEFI in VMs.
Oleg Pykhalov <go.wigust@gmail.com> skribis:
> But I got another issue, not related to Grub.
>
> Loops in QEMU:
>
> …
> waiting for partition 'magnolia-data' to appear
> …
> failed to start service 'file-systems'
> …
This is expected: there’s no partition with that label in the VM.
You have to comment out the ‘file-system’ declaration because it doesn’t
make sense inside the VM. Perhaps ‘virtualized-operating-system’ could
do it automatically as well, not sure.
HTH,
Ludo’.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#28768: guix system vm Failed to install GRUB (EFI)
2017-10-12 8:46 ` Ludovic Courtès
2017-10-19 18:21 ` Marius Bakke
@ 2017-10-19 20:32 ` Oleg Pykhalov
1 sibling, 0 replies; 6+ messages in thread
From: Oleg Pykhalov @ 2017-10-19 20:32 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 28768
Hello Ludovic,
Apologies for the late reply.
ludo@gnu.org (Ludovic Courtès) writes:
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> Oleg Pykhalov <go.wigust@gmail.com> writes:
>>
>>> EFI bootloader configuration causes problems to test with 'system vm'
>>> before 'reconfigure'.
>>
>> This is because `guix system vm` is not currently UEFI enabled, so GRUB
>> tries to install for a normal PC BIOS.
>>
>> The fix would be to make the various QEMU invocations in (gnu system vm)
>> take a #:firmware parameter that passes something along the lines of
>> '-bios #$(file-append ovmf "/share/ovmf/firmware/ovmf_x64.bin")' to the
>> QEMU command-line, and update other scripts to take advantage.
>
> Perhaps by adding it to <virtual-machine> records we’d make it less
> annoying to pass around? Or are there other places that would still
> need extra care?
>
> Another option, in the meantime is this:
>
> diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
> index 273a895be..f763b430b 100644
> --- a/gnu/system/vm.scm
> +++ b/gnu/system/vm.scm
> @@ -565,6 +565,14 @@ environment with the store shared with the host. MAPPINGS is a list of
> user-file-systems)))
>
> (operating-system (inherit os)
> +
> + ;; XXX: Until we run QEMU with UEFI support (with the OVMF firmware),
> + ;; force the traditional i386/BIOS method.
> + ;; See <https://bugs.gnu.org/28768>.
> + (bootloader (bootloader-configuration
> + (bootloader grub-bootloader)
> + (target "/dev/vda")))
> +
> (initrd (lambda (file-systems . rest)
> (apply base-initrd file-systems
> #:volatile-root? #t
>
>
> That’s what I do manually anyway.
>
> WDYT? If that’s fine with you, I can commit it.
>
> Thanks,
> Ludo’.
Tiny improvement:
--8<---------------cut here---------------start------------->8---
natsu@magnolia ~/src/guix$ pre-guix system vm ~/dotfiles/guix/system-magnolia.scm
Backtrace:
10 (primitive-load "/home/natsu/src/guix/scripts/guix")
In guix/ui.scm:
1384:12 9 (run-guix-command _ . _)
In ice-9/boot-9.scm:
837:9 8 (catch _ _ #<procedure 7f3d47deeac0 at guix/ui.scm:460:2 (key c)> _)
837:9 7 (catch _ _ #<procedure 7f3d47deead8 at guix/ui.scm:548:6 (key proc…> …)
In guix/scripts/system.scm:
1099:8 6 (_)
974:6 5 (process-action _ _ _)
In guix/store.scm:
1444:24 4 (run-with-store _ _ #:guile-for-build _ #:system _ #:target _)
In guix/scripts/system.scm:
987:13 3 (_ _)
706:18 2 (perform-action vm #<<operating-system> kernel: #<package linux-li…> …)
In gnu/system/vm.scm:
671:31 1 (system-qemu-image/shared-store-script #<<operating-system> kernel…> …)
559:4 0 (virtualized-operating-system #<<operating-system> kernel: #<packa…> …)
gnu/system/vm.scm:559:4: In procedure virtualized-operating-system:
gnu/system/vm.scm:559:4: In procedure module-lookup: Unbound variable: grub-bootloader
--8<---------------cut here---------------end--------------->8---
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index f763b430b..7feb242d5 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -49,7 +49,8 @@
#:use-module (gnu packages admin)
#:use-module (gnu bootloader)
- #:use-module ((gnu bootloader grub) #:select (grub-mkrescue-bootloader))
+ #:use-module ((gnu bootloader grub) #:select (grub-mkrescue-bootloader
+ grub-bootloader))
#:use-module (gnu system shadow)
#:use-module (gnu system pam)
#:use-module (gnu system linux-initrd)
But I got another issue, not related to Grub.
Loops in QEMU:
…
waiting for partition 'magnolia-data' to appear
…
failed to start service 'file-systems'
…
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-10-19 21:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-09 19:50 bug#28768: guix system vm Failed to install GRUB (EFI) Oleg Pykhalov
2017-10-10 19:08 ` Marius Bakke
2017-10-12 8:46 ` Ludovic Courtès
2017-10-19 18:21 ` Marius Bakke
2017-10-19 21:25 ` Ludovic Courtès
2017-10-19 20:32 ` Oleg Pykhalov
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
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).