Howdy! Mathieu Othacehe <m.othac...@gmail.com> skribis:
> I made some progress on the image generation topic. As discussed > previously, the goal is to use the same principles as genimage[1], to > achieve faster image generation, without resorting to VM. Awesome. > A very related topic, is to bring the possibility to create Guix System > images with custom layouts. That includes position, size and type of the > bootloader partition, offset of the root partition and so on. While this > is not really important for desktop usage, it is almost mandatory for > embedded usage. > > The wip-disk-image branch allows to define a Guix System image along the > lines of: > > (define my-image > (image > (format 'disk-image) > (operating-system my-os) > (partitions > (list (partition > (size (* 40 (expt 2 20))) > (label "GNU-ESP") > (file-system "vfat") > (flags '(esp)) > (initializer (gexp initialize-efi-partition))) > (partition > (size 'guess) > (label "Guix_image") > (file-system "ext4") > (flags '(boot)) > (initializer (gexp initialize-root-partition))))))) That’s really cool! I’ve been willing to have something like that forever, but the current <partition> record is buried on the build side, which makes it inconvenient to use like you do above. > On this branch, it is already possible to generate an EFI disk-image, > with the traditional command: > > ./pre-inst-env guix system disk-image gnu/system/examples/desktop.tmpl > > On my computer, this takes 6m50 versus 2h30 for the master version. I > tested the image in QEMU, everything seems fine. Oh, this much on ‘master’? Anyway, the speedup is undoubtedly there and it’s really great. > Now there's still plenty of work. This branch needs some more > cleaning. Then we need to: > > * Add support for ISO images. I see you did that in the meantime. > * Extend support to grub (non-efi), extlinux and u-boot bootloaders. > * Check everything works with --system and --target arguments. Yeah. I saw your message to janneke, and indeed, I think there’s room for cooperation: janneke has come up with something that’s very close to “normal” Guix System for GNU/Hurd, and one of the main stumbling blocks in my mind is building the image and in particular getting proper GRUB suppotr for multiboot OSes. > I've re-implemented some parts of genimage in (gnu build disk-image) > module. Now, we could also go further and remove the use of this tool > completely. I think it’s great. :-) Please do ping us when you want a closer review! Ludo’.