[prev in list] [next in list] [prev in thread] [next in thread]
List: gentoo-dev
Subject: Re: [gentoo-dev] [PATCH 2/2] dist-kernel-utils.eclass: skip initrd installation when using the uki l
From: Andrew Ammerlaan <andrewammerlaan () gentoo ! org>
Date: 2023-06-17 18:21:48
Message-ID: 5c62b67f-077d-1be3-655e-a72e56a60332 () gentoo ! org
[Download RAW message or body]
This replaces a workaround with a better one. Instead of tricking
50-dracut.install with an empty inird file we instruct kernel-install to
simply skip this plugin.
This way we don't end up with a bunch of confusing empty initrd files in
/boot. End result is the same.
I've got an upstream PR open to fix the underlying issue (i.e make
50-dracut.install work properly with uefi=yes and layout=uki):
https://github.com/dracutdevs/dracut/pull/2405
From c2d6ecb074d25c70677fa9c371801a0002c9a216 Mon Sep 17 00:00:00 2001
From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Date: Fri, 16 Jun 2023 22:51:00 +0200
Subject: [PATCH] dist-kernel-utils.eclass: skip initrd installation when
using
uki
Gets rid of a hack that prevents 50-dracut.install from regenerating the
initrd
when calling kernel-install. Instead instruct kernel-install to simply
not run
this plugin.
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
---
eclass/dist-kernel-utils.eclass | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/eclass/dist-kernel-utils.eclass
b/eclass/dist-kernel-utils.eclass
index c6892c2f01278..e371e035c8565 100644
--- a/eclass/dist-kernel-utils.eclass
+++ b/eclass/dist-kernel-utils.eclass
@@ -106,10 +106,21 @@ dist-kernel_install_kernel() {
# install the combined executable in place of kernel
image=${initrd}.efi
mv "${initrd}" "${image}" || die
- # put an empty file in place of initrd. installing a duplicate
- # file would waste disk space, and removing it entirely provokes
- # kernel-install to regenerate it via dracut.
- > "${initrd}"
+ # We moved the generated initrd, prevent dracut from running again
+ local plugins=()
+ for file in "${EROOT}"/usr/lib/kernel/install.d/*; do
+ if [[ ${file} != */50-dracut.install && \
+ ${file} != */51-dracut-rescue.install && \
+ ${file} == *.install ]]; then
+ plugins+=( "${file}" )
+ fi
+ done
+ for file in "${EROOT}"/etc/kernel/install.d/*; do
+ if [[ ${file} == *.install ]]; then
+ plugins+=( "${file}" )
+ fi
+ done
+ export KERNEL_INSTALL_PLUGINS="${KERNEL_INSTALL_PLUGINS} ${plugins[@]}"
fi
ebegin "Installing the kernel via installkernel"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic