Subject: guix system delete-generations does not use bootloader configuration

From: raid5atemyhomework <[email-masked]>
Date: Mon, 29 Mar 2021 02:01:24 +0000

Note as well that keyboard layouts at Grub time are also broken by this.  As the keyboard layout is used when accepting passphrases for cryptodisks, this can leave a user potentially unable to boot at all without expert GRUB knowledge, if they selected a passphrase including characters not available on default US keyboard.

An alternative solution is to split the `grub.cfg` file into two pieces: one containing the bootloader configuration settings, the other containing the entries.  Then `reinstall-bootloader` just changes the entries.

On alternative bootloaders, there is usually little to no configuration.

* `depthcharge` - No configuration.
* `extlinux` - Only `timeout` configuration.
* `u-boot` - Based on `extlinux` (so only `timeout` configuration).

So a possible design would be to have a "split" generation of the configuration file.

This affects how `bootloader-configuration-file-generator` is used, however.  This affects three points:

* `gnu/machine/ssh.scm` - This is given a `bootloader-configuration` from the actual OS on the machine, so probably OK to use this legacy interface.
* `gnu/system.scm` - Like the above, given a `bootloader-configuration` from the actual OS on the machine.
* `gnu/scripts/system.scm` - This is the problem point identified before.

Yet another solution would be to augment `boot-parameters` with the fields of `bootloader-configuration`, but that violates DRY --- fields added to `bootloader-configuration` in the future need to be added to `boot-parameters` as well, so I think this is undesirable.

Thanks
raid5atemyhomework