bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-08-25 Thread Josselin Poiret via Bug reports for GNU Guix
Hi,

Pushed d57cab764122af69d52d8cc9c843456044e5d7bc that adds mbr-image-type
and sets it as default.

LMKWYT, closing tentatively.

Best,
-- 
Josselin Poiret


signature.asc
Description: PGP signature


bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-08-08 Thread Josselin Poiret via Bug reports for GNU Guix
Hi everyone,

Ludovic Courtès  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
Description: PGP signature


bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-08-07 Thread Ludovic Courtès
Hi,

Josselin Poiret  skribis:

> From: Josselin Poiret 
>
> * 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 .” to the commit log.

Ludo’.





bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-08-07 Thread Ludovic Courtès
Hi,

Josselin Poiret  skribis:

> Sergey Trofimov  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’.





bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-07-21 Thread Sergey Trofimov



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  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







bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-07-21 Thread Yann Dupont
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
Description: Signature cryptographique S/MIME


bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-07-19 Thread Josselin Poiret via Bug reports for GNU Guix
Hi Sergey,

Sergey Trofimov  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
Description: PGP signature


bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-07-17 Thread Ludovic Courtès
Hi Josselin,

Josselin Poiret  skribis:

> Ludovic Courtès  writes:
>
>> The culprit might be 209204e23b39af09e0ea92540b6fa00a60e6a0ae, from
>> .
>>
>> 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:

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

WDYT?

Ludo’.


bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-07-16 Thread Josselin Poiret via Bug reports for GNU Guix
Hi Ludo,

Ludovic Courtès  writes:

> The culprit might be 209204e23b39af09e0ea92540b6fa00a60e6a0ae, from
> .
>
> 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
Description: PGP signature


bug#64593: ‘guix system image’ fails to create image while invoking ‘grub-bios-setup’

2023-07-13 Thread Ludovic Courtès
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 (_ #(# ("/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
.

Josselin, Sergey, WDYT?

Ludo’.