[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#28768: guix system vm Failed to install GRUB (EFI)
From: |
Oleg Pykhalov |
Subject: |
bug#28768: guix system vm Failed to install GRUB (EFI) |
Date: |
Thu, 19 Oct 2017 23:32:56 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Hello Ludovic,
Apologies for the late reply.
address@hidden (Ludovic Courtès) writes:
> Marius Bakke <address@hidden> skribis:
>
>> Oleg Pykhalov <address@hidden> 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---
address@hidden ~/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'
…