grub-mkconfig/10_linux: Support multiple early initrd images
authorMatthew S. Turnbull <sparky@bluefang-logic.com>
Sat, 24 Feb 2018 22:44:58 +0000 (17:44 -0500)
committerDaniel Kiper <daniel.kiper@oracle.com>
Wed, 14 Mar 2018 12:23:27 +0000 (13:23 +0100)
commita698240df0c43278b2d1d7259c8e7a6926c63112
tree4f74195201d2f7c1d863a6620559d0265a9a3509
parent28b0d19061d66e3633148ac8e44decda914bf266
grub-mkconfig/10_linux: Support multiple early initrd images

Add support for multiple, shared, early initrd images. These early
images will be loaded in the order declared, and all will be loaded
before the initrd image.

While many classes of data can be provided by early images, the
immediate use case would be for distributions to provide CPU
microcode to mitigate the Meltdown and Spectre vulnerabilities.

There are two environment variables provided for declaring the early
images.

* GRUB_EARLY_INITRD_LINUX_STOCK is for the distribution declare
  images that are provided by the distribution or installed packages.
  If undeclared, this will default to a set of common microcode image
  names.

* GRUB_EARLY_INITRD_LINUX_CUSTOM is for user created images. User
  images will be loaded after the stock images.

These separate configurations allow the distribution and user to
declare different image sets without clobbering each other.

This also makes a minor update to ensure that UUID partition labels
stay disabled when no initrd image is found, even if early images are
present.

This is a continuation of a previous patch published by Christian
Hesse in 2016:
http://lists.gnu.org/archive/html/grub-devel/2016-02/msg00025.html

Down stream Gentoo bug:
https://bugs.gentoo.org/645088

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Matthew S. Turnbull <sparky@bluefang-logic.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
docs/grub.texi
util/grub-mkconfig.in
util/grub.d/10_linux.in