GNU bug report logs -
#64593
‘guix system image’ fails to create image while invoking ‘grub-bios-setup’
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64593 in the body.
You can then email your comments to 64593 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
yann.dupont <at> univ-nantes.fr, sarg <at> sarg.org.ru, dev <at> jpoiret.xyz, bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Thu, 13 Jul 2023 09:34:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Ludovic Courtès <ludovic.courtes <at> inria.fr>
:
New bug report received and forwarded. Copy sent to
yann.dupont <at> univ-nantes.fr, sarg <at> sarg.org.ru, dev <at> jpoiret.xyz, bug-guix <at> gnu.org
.
(Thu, 13 Jul 2023 09:34:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hello,
There seems to be a recent regression:
--8<---------------cut here---------------start------------->8---
$ cat mini-os.scm
(use-modules (gnu))
(operating-system
(host-name "mini-1")
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(targets '("/dev/sda"))))
(file-systems (cons (file-system
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4")) %base-file-systems))
(kernel-arguments (list "console=tty0 console=ttyS0,115200")))
$ guix system image mini-os.scm
[...]
building /gnu/store/99wmrm4ali4f4pnii21rlhjvpfds762j-boot.drv...
building /gnu/store/6gra5cyiilyv3dm3jc7yhkga0kygblhn-system.drv...
building /gnu/store/xf50b8cm7ida4rgxp2q69vp2jhsl3kzp-grub.cfg.drv...
building /gnu/store/69nhv7idhf1i7a3j8pdchkdd5jj5fl7l-partition.img.drv...
building /gnu/store/74sxq3x9gwq0wlwqrrs0lqkr0n14p1kd-partition.img.drv...
building /gnu/store/dnqxyq1x7fd5131rby4z46rx8wkzw1k6-genimage.cfg.drv...
building /gnu/store/rvq9sqk55qwk27j8m3gjhba7f4zjid2k-disk-image.drv...
-builder for `/gnu/store/rvq9sqk55qwk27j8m3gjhba7f4zjid2k-disk-image.drv' failed with exit code 1
build of /gnu/store/rvq9sqk55qwk27j8m3gjhba7f4zjid2k-disk-image.drv failed
View build log at '/var/log/guix/drvs/rv/q9sqk55qwk27j8m3gjhba7f4zjid2k-disk-image.drv.gz'.
guix system: error: build of `/gnu/store/rvq9sqk55qwk27j8m3gjhba7f4zjid2k-disk-image.drv' failed
$ zcat /var/log/guix/drvs/rv/q9sqk55qwk27j8m3gjhba7f4zjid2k-disk-image.drv.gz | tail -20
INFO: hdimage(image): writing GPT
INFO: hdimage(image): writing protective MBR
INFO: hdimage(image): writing MBR
/gnu/store/0f4z2i472rfd3qphl82j7jm49qgm672d-grub-2.06/sbin/grub-bios-setup: error: cannot find a device for . (is /dev mounted?).
Backtrace:
2 (primitive-load "/gnu/store/i6khnb475pxagfvjwnhi09z07n5?")
In ice-9/eval.scm:
619:8 1 (_ #(#<directory (guile-user) 7ffff77f7c80> ("/gn?" ?) ?))
In ./guix/build/utils.scm:
812:6 0 (invoke "/gnu/store/0f4z2i472rfd3qphl82j7jm49qgm672d-g?" ?)
./guix/build/utils.scm:812:6: In procedure invoke:
ERROR:
1. &invoke-error:
program: "/gnu/store/0f4z2i472rfd3qphl82j7jm49qgm672d-grub-2.06/sbin/grub-bios-setup"
arguments: ("-m" "device.map" "-r" "hd0,msdos2" "-d" "." "images/image")
exit-status: 1
term-signal: #f
stop-signal: #f
environment variable `PATH' set to `/gnu/store/n31fw25l5yxq17x52mm7jjbvld58f8zd-genimage-15-1.ec44ae0/bin:/gnu/store/yr39rh6wihd1wv6gzf7w4w687dwzf3vb-coreutils-9.1/bin:/gnu/store/016lrymzc8a1rpx2p1app1awp2w2wlpk-findutils-4.9.0/bin:/gnu/store/nl2ddwgdw4mzghv6kzl6akg1s7p7yik8-qemu-minimal-7.2.1/bin'
$ guix describe
Generation 269 Jul 10 2023 00:17:51 (current)
guix d2cf631
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: d2cf63165119fc78c9f52abce2ce66af23e49243
--8<---------------cut here---------------end--------------->8---
Conversely, it works with a commit from two weeks ago:
--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=269cfe341f242c2b5f37774cb9b1e17d9aa68e2c -- system image mini-os.scm
[...]
building /gnu/store/k4r5d09slzl70sn4zbl0gpnzn1mb5ksy-system.drv...
building /gnu/store/13z2cyi9n4isyrw5ashhcazy4ps8qffy-grub.cfg.drv...
building /gnu/store/7sx021qpby1p57fqv5n5jkfz20qi9933-partition.img.drv...
building /gnu/store/vw5n9q3z6k59mcsw7z4kb6ckp9bbc8nh-partition.img.drv...
building /gnu/store/hq7lw7qm3fbl4fhlmqxxp9sw1v8h3h3m-genimage.cfg.drv...
building /gnu/store/dil3qjisdkprw20kybr1bxmp6sid7g2v-disk-image.drv...
/gnu/store/5lsi1wp59vwnk8rk2124y14p9r2fr9yc-disk-image
--8<---------------cut here---------------end--------------->8---
A relevant difference seems to be GPT vs. MBR (the latter works, the
former breaks):
--8<---------------cut here---------------start------------->8---
$ cat $(guix build /gnu/store/hq7lw7qm3fbl4fhlmqxxp9sw1v8h3h3m-genimage.cfg.drv) |head -3
image image {
hdimage {
partition-table-type = "mbr"
$ cat $(guix build /gnu/store/dnqxyq1x7fd5131rby4z46rx8wkzw1k6-genimage.cfg.drv) |head -3
image image {
hdimage {
partition-table-type = "gpt"
--8<---------------cut here---------------end--------------->8---
The culprit might be 209204e23b39af09e0ea92540b6fa00a60e6a0ae, from
<https://issues.guix.gnu.org/62223>.
Josselin, Sergey, WDYT?
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Sun, 16 Jul 2023 11:09:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 64593 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Ludo,
Ludovic Courtès <ludovic.courtes <at> inria.fr> writes:
> The culprit might be 209204e23b39af09e0ea92540b6fa00a60e6a0ae, from
> <https://issues.guix.gnu.org/62223>.
>
> Josselin, Sergey, WDYT?
Apologies! Our install-grub-disk-image doesn't really support GPT
right, now but this is easy to fix (I've successfully booted your
example with a local change). However, for this to work we need to have
a BIOS Boot partition instead of the ESP that's defined for efi images.
We have two options here, either add a new image type that has that
instead of the ESP (which means duplicating a bunch of them...), or make
the partition of efi-raw change depending on the bootloader, which would
need some refactoring. I'm not a big fan of either options though :)
WDYT?
--
Josselin Poiret
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Mon, 17 Jul 2023 16:12:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 64593 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Josselin,
Josselin Poiret <dev <at> jpoiret.xyz> skribis:
> Ludovic Courtès <ludovic.courtes <at> inria.fr> writes:
>
>> The culprit might be 209204e23b39af09e0ea92540b6fa00a60e6a0ae, from
>> <https://issues.guix.gnu.org/62223>.
>>
>> Josselin, Sergey, WDYT?
>
> Apologies! Our install-grub-disk-image doesn't really support GPT
> right, now but this is easy to fix (I've successfully booted your
> example with a local change). However, for this to work we need to have
> a BIOS Boot partition instead of the ESP that's defined for efi images.
> We have two options here, either add a new image type that has that
> instead of the ESP (which means duplicating a bunch of them...), or make
> the partition of efi-raw change depending on the bootloader, which would
> need some refactoring. I'm not a big fan of either options though :)
I’m not sure what a good fix is, but I think we should make sure ‘guix
system image’ (‘-t efi-raw’, that is) doesn’t remain broken.
One possible short-term option is to revert, or maybe we could
special-case along these lines:
[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 841e7e0c7e..b4ed4181ac 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -204,7 +204,12 @@ (define-syntax-rule (image-with-os base-image os)
(define efi-raw-image-type
(image-type
(name 'efi-raw)
- (constructor (cut image-with-os efi-disk-image <>))))
+ (constructor (cut image-with-os
+ (image-without-os
+ (format 'disk-image)
+ (partition-table-type 'mbr) ;XXX
+ (partitions (list esp-partition root-partition)))
+ <>))))
(define efi32-raw-image-type
(image-type
[Message part 3 (text/plain, inline)]
WDYT?
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Tue, 18 Jul 2023 18:38:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 64593 <at> debbugs.gnu.org (full text, mbox):
Hi Ludovic,
shouldn't it be `(bootloader grub-efi-bootloader)` if you're
building a `efi-raw` image?
With efi grub it builds and boots just fine, as I've tested before
submitting the patch.
Ludovic Courtès <ludovic.courtes <at> inria.fr> writes:
> Hello,
>
> There seems to be a recent regression:
>
> $ cat mini-os.scm
> (use-modules (gnu))
>
> (operating-system
> (host-name "mini-1")
>
> (bootloader (bootloader-configuration
> (bootloader grub-bootloader)
> (targets '("/dev/sda"))))
> (file-systems (cons (file-system
> (device (file-system-label "my-root"))
> (mount-point "/")
> (type "ext4")) %base-file-systems))
> (kernel-arguments (list "console=tty0 console=ttyS0,115200")))
> $ guix system image mini-os.scm
>
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Wed, 19 Jul 2023 08:45:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 64593 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi Sergey,
Sergey Trofimov <sarg <at> sarg.org.ru> writes:
> shouldn't it be `(bootloader grub-efi-bootloader)` if you're
> building a `efi-raw` image?
> With efi grub it builds and boots just fine, as I've tested before
> submitting the patch.
I think I agree with you that you should expect efi images to use efi
bootloaders. The efi-raw image name is a bit misleading I would argue,
since the image type doesn't decide what bootloader is used, and using a
BIOS bootloader with an efi image seems a bit weird. The fact that it's
used as the default image type is a bit troubling though, so we could
add a new default image type that uses MBR, so that BIOS bootloaders
work with it.
WDYT Ludo?
Best,
--
Josselin Poiret
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Fri, 21 Jul 2023 07:45:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 64593 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello, as it was after discussion with Ludovic that he posted this bug
report, let me express my opinion as a simple user.
it's just a matter of consistency: very basically, the examples mention
grub-bootloader. With the default image type (efi-raw), it's been
working perfectly for years (maybe by chance, but in any case it seemed
to be a compatible combination). The recent change means that it no
longer works :-). What's more, the error message isn't very explicit,
and doesn't point to a configuration error but to what may appear to be
a recently-introduced bug. Switching to grub-efi-bootloader allows you
to build the image (and start it).
I don't know if it's simply possible to have a consistency check between
the image type and the bootloader used: "Bootloader probably not
compatible with image type, please use grub-efi-bootloader".
Maybe just change the doc to include grub-efi-bootloader in the
examples. Or indeed have a format that remains compatible with MBR
partitioning and the appropriate grub.
--
Yann
[smime.p7s (application/pkcs7-signature, attachment)]
Information forwarded
to
mail <at> cbaines.net, dev <at> jpoiret.xyz, ludo <at> gnu.org, othacehe <at> gnu.org, rekado <at> elephly.net, zimon.toutoune <at> gmail.com, me <at> tobias.gr, bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Thu, 27 Jul 2023 16:37:01 GMT)
Full text and
rfc822 format available.
Message #23 received at 64593 <at> debbugs.gnu.org (full text, mbox):
From: Josselin Poiret <dev <at> jpoiret.xyz>
* gnu/system/image.scm (mbr-disk-image, mbr-raw-image-type): New variables.
* guix/scripts/system.scm (%default-options): Use mbr-raw-image-type by
default.
---
How about this for now? I think the bootloader/image-type situation is not
clear, but at least this keeps the behavior of the previous default option.
gnu/system/image.scm | 16 ++++++++++++++++
guix/scripts/system.scm | 2 +-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 841e7e0c7e..92e659753e 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -76,6 +76,7 @@ (define-module (gnu system image)
esp32-partition
root-partition
+ mbr-disk-image
efi-disk-image
iso9660-image
docker-image
@@ -84,6 +85,7 @@ (define-module (gnu system image)
raw-with-offset-disk-image
image-with-os
+ mbr-raw-image-type
efi-raw-image-type
efi32-raw-image-type
qcow2-image-type
@@ -145,6 +147,15 @@ (define root-partition
(flags '(boot))
(initializer (gexp initialize-root-partition))))
+(define mbr-disk-image
+ (image-without-os
+ (format 'disk-image)
+ (partition-table-type 'mbr)
+ (partitions
+ (list (partition
+ (inherit root-partition)
+ (offset root-offset))))))
+
(define efi-disk-image
(image-without-os
(format 'disk-image)
@@ -201,6 +212,11 @@ (define-syntax-rule (image-with-os base-image os)
(inherit base-image)
(operating-system os)))
+(define mbr-raw-image-type
+ (image-type
+ (name 'mbr-raw)
+ (constructor (cut image-with-os mbr-disk-image <>))))
+
(define efi-raw-image-type
(image-type
(name 'efi-raw)
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index d7163dd3eb..95c68a5f33 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -1168,7 +1168,7 @@ (define %default-options
(debug . 0)
(verbosity . #f) ;default
(validate-reconfigure . ,ensure-forward-reconfigure)
- (image-type . efi-raw)
+ (image-type . mbr-raw)
(image-size . guess)
(install-bootloader? . #t)
(label . #f)
base-commit: c7e45139faa27b60f2c7d0a4bc140f9793d97d47
--
2.41.0
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Thu, 27 Jul 2023 17:48:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 64593 <at> debbugs.gnu.org (full text, mbox):
On 2023-07-27 18:35, Josselin Poiret via Bug reports for wrote:
> From: Josselin Poiret <dev <at> jpoiret.xyz>
>
> * gnu/system/image.scm (mbr-disk-image, mbr-raw-image-type): New variables.
> * guix/scripts/system.scm (%default-options): Use mbr-raw-image-type by
> default.
> ---
>
> How about this for now? I think the bootloader/image-type situation is not
> clear, but at least this keeps the behavior of the previous default option.
I can confirm that this works for my particular issue of failure when running
guix system image --expression="(@(gnu system install) installation-os)".
--
Best regards,
Nicolas Graves
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Thu, 27 Jul 2023 17:49:01 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Mon, 07 Aug 2023 07:36:01 GMT)
Full text and
rfc822 format available.
Message #32 received at 64593 <at> debbugs.gnu.org (full text, mbox):
Hi,
Josselin Poiret <dev <at> jpoiret.xyz> skribis:
> Sergey Trofimov <sarg <at> sarg.org.ru> writes:
>
>> shouldn't it be `(bootloader grub-efi-bootloader)` if you're
>> building a `efi-raw` image?
>> With efi grub it builds and boots just fine, as I've tested before
>> submitting the patch.
>
> I think I agree with you that you should expect efi images to use efi
> bootloaders. The efi-raw image name is a bit misleading I would argue,
> since the image type doesn't decide what bootloader is used, and using a
> BIOS bootloader with an efi image seems a bit weird. The fact that it's
> used as the default image type is a bit troubling though, so we could
> add a new default image type that uses MBR, so that BIOS bootloaders
> work with it.
Yes, we could do that.
I guess my confusion stems from the fact that the default image type
changed to EFI recently (right?).
Thanks,
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Mon, 07 Aug 2023 07:41:01 GMT)
Full text and
rfc822 format available.
Message #35 received at 64593 <at> debbugs.gnu.org (full text, mbox):
Hi,
Josselin Poiret <dev <at> jpoiret.xyz> skribis:
> From: Josselin Poiret <dev <at> jpoiret.xyz>
>
> * gnu/system/image.scm (mbr-disk-image, mbr-raw-image-type): New variables.
> * guix/scripts/system.scm (%default-options): Use mbr-raw-image-type by
> default.
> ---
>
> How about this for now? I think the bootloader/image-type situation is not
> clear, but at least this keeps the behavior of the previous default option.
LGTM!
Maybe add “Fixes <https://issues.guix.gnu.org/64593>.” to the commit log.
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#64593
; Package
guix
.
(Tue, 08 Aug 2023 09:03:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 64593 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi everyone,
Ludovic Courtès <ludovic.courtes <at> inria.fr> writes:
> I guess my confusion stems from the fact that the default image type
> changed to EFI recently (right?).
No, the image type had always been efi-raw iirc, just that efi images
now use GPT partitioning, and BIOS booting on GPT drives need an extra
BIOS partition to store the bootloader which used to be stored in empty
space after the MBR headers. There really wasn't anything EFI at all
about the efi image type before though imo…
Best,
--
Josselin Poiret
[signature.asc (application/pgp-signature, inline)]
Reply sent
to
Josselin Poiret <dev <at> jpoiret.xyz>
:
You have taken responsibility.
(Fri, 25 Aug 2023 16:35:01 GMT)
Full text and
rfc822 format available.
Notification sent
to
Ludovic Courtès <ludovic.courtes <at> inria.fr>
:
bug acknowledged by developer.
(Fri, 25 Aug 2023 16:35:01 GMT)
Full text and
rfc822 format available.
Message #43 received at 64593-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
Pushed d57cab764122af69d52d8cc9c843456044e5d7bc that adds mbr-image-type
and sets it as default.
LMKWYT, closing tentatively.
Best,
--
Josselin Poiret
[signature.asc (application/pgp-signature, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 23 Sep 2023 11:24:15 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 230 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.