Currently, the kernel and the initrd are stored somewhere in /gnu/store and the GRUB configuration is generated to point to these things directly. This means that the disk containing /gnu/store must be readable in GRUB. This is not always the case.
Consider the case where /gnu/store should be hosted on an external storage array connected redundantly via HBAs. The disks might not be visible in GRUB and only become available once Linux has booted. This could be made to work by adding an option to “guix system reconfigure” to copy all things that are needed for starting Linux (e.g. the kernel, the initrd, …), and then mount /gnu/store from the specified location once Linux is up. -- Ricardo
