Hi Marius, yeah, I've noticed that problem, too.
David and I got some steps in the direction of fixing it (for U-Boot support): The U-Boot support patch generalized this, see my E-Mail to this list, subject "[WIP PATCH] gnu: add U-Boot support to operating-system" on 09 Sep 2016 at 20:09. The relevant part is: - guix/scripts/system.scm: The "install" routine is changed to also accept the bootloader package as argument (variable is called "grub" to keep the number of trivial patch chunks low). - guix/scripts/system.scm: The new "install-bootloader*" routine is introduced instead of "install-grub*" to also accept the bootloader package as argument. If you want you can cherry-pick these changes. I've reconfigured and booted with that patch. It works. I'm not sure how the build side picks up which package's grub-install is invoked (gnu/build/install.scm just invokes "grub-install" without any further path specification). I've asked about it before (multiple times now) and apparently nobody knows. If someone finds out, gnu/build/install.scm install-grub after the patch accepts the grub-name and could just invoke grub-install correctly. I *think* it's fine to just (string-append grub-name "/bin/grub-install") or something - but that's something I don't want to guess. David knows more about the VM side - the patch also addresses this by carring around the bootloader als variable "grub" (which is not necessarily actually grub). I hope that helps.