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