Package: grub-cloud-amd64
Version: 0.0.5
Severity: important

grub-cloud-amd64 currently ships the /etc/default/grub file, which
contains an opinionated bootloader configuration that, among other
things, enables printing information to the serial console. This may be
a good idea for cloud images in general, but it comes with a substantial
bootup performance hit that makes it unsuitable for some use cases. This
would be easily configurable by installer applications, except for the
fact that grub-cloud-amd64 ships /etc/default/grub as a conffile. If an
installer customizes or creates /etc/default/grub (like installer
applications oftentimes do), and the configuration offered by
grub-cloud-amd64 ever changes, users will get hit with a conffile prompt
despite never modifying the file intentionally.

One fairly easy solution would be to simply embed the config file into
the postinst script or write it in a location that isn't contested the
way /etc/default/grub is, then check for the file's existence upon
installation and upgrades, and write it only if it doesn't exist
already. This would result in essentially the same behavior that exists
now, but it would allow users and installers to overwrite the file
without risking triggering conffile prompts in the future.

One might legitimately ask what business an installer has using
grub-cloud-amd64 when this is specifically for cloud images. The
installer I'm working with, grml-debootstrap, has a feature that
generates VM images. Those images can be whatever the user wants, and
could be used in a cloud scenario. grml-debootstrap attempts to offer
support for both UEFI and BIOS booting in the same image, which
grub-cloud-amd64 offers. However, the performance hit at bootup isn't
desirable, and turning off the serial console stuff isn't possible
without risking problems as explained above. Theoretically any VM image
generator, or any installer that used grub-cloud-amd64 to offer BIOS and
UEFI boot support, could run into the same problems.

For context, see the discussion about this at grml-debootstrap's GitHub
repo: https://github.com/grml/grml-debootstrap/pull/299

Attachment: pgpeEMH7K_7U6.pgp
Description: OpenPGP digital signature

Reply via email to