On 2021-04-30, Joshua Branson wrote: > Vladilen Kozin writes: >> Is there a way out of this predicament? I can see two options. >> (1) can some Linux distro/bootloader do the FreeBSD trick: start on >> USB but then chain-boot Guix off that SSD? IIUC grub's chain-boot is >> of no help here, cause it simply won't even see that drive; >> (2) install and run Guix off USB but somehow ensure that "IO heavy" >> bits are mounted from that SSD. There's gotta be some (file-systems >> ...) combined with the way I `guix system init config.scm /mnt` (or >> rather what else I mount under /mnt where) that would achieve this? ... > I think number 1 is your "best" bet. I've no idea how to do that. > > Number 2 is probably your "easiest" option. /boot/ should be put on the > usb, and I suppose that the / should be on the SSD...You would install > this way. That's probably how I'd do it. Or rather that is how I would > try to do it. :) Unfortunately, guix doesn't currently support booting off of a separate /boot partition, since the kernel and initrd are in /gnu/store; your bootloader needs to be able to mount the partition that /gnu/store is located on. The workaround would be to manually copy all files mentioned in grub.cfg (kernel, initrd, possibly others) into a partition somewhere on boot media, and tweak the grub.cfg appropriately... There are several cases where this sort of thing would be desireable: * The above scenario; the system does not expose an NVMe drive from EFI or BIOS. * Using u-boot and you want root on lvm, raid, encryption, etc. which u-boot does not support I've been meaning to file a bug on this for ages; I have BCCed bug-guix now which will hopefully work. :) Another more complicated option would be to use kexec; where you boot one kernel and maybe a minimal rootfs, and load a new kernel and initrd into ram, which uses the kernel drivers and then runs "kexec" to switch to the newly loaded kernel... not sure how reliable that is, but it is possible. live well, vagrant