[Libguestfs] [p2v PATCH 2/4] make-disk: restrict kernel update bug work-around
Richard W.M. Jones
rjones at redhat.com
Thu Jan 19 18:52:21 UTC 2023
On Thu, Jan 19, 2023 at 01:14:46PM +0100, Laszlo Ersek wrote:
> Commit 2764abefaa14 ("make-disk: Don't upgrade the kernel to avoid kernel
> command line bug", 2022-03-24) replaced the "--update" option of
> virt-builder with an open-coded DNF update command, excluding the kernel
> packages from the update.
>
> Albeit a justified workaround, it is a bit too broad: it breaks on all
> guest OS images that don't have DNF, such as old RHEL, Debian and Ubuntu,
> etc. (In a subsequent patch, I'm going to refactor the Debian/Ubuntu
> branch, and for testing that, I first need eliminate the open-coded DNF
> command.) Refine the workaround as follows:
>
> - I've tested Fedora 33 and Fedora 37; they work without the workaround
> (they are not yet, and no longer, affected by the bug, respectively).
>
> - I've tested Fedora 34 and 36, they are affected. They need the
> workaround.
>
> - Fedora 35 is also broken, per
> <https://bugzilla.redhat.com/show_bug.cgi?id=1945835#c24>.
>
> - RHEL-9.0 and RHEL-9.1 *seem* to work fine without the workaround (that
> is, with commit 2764abefaa14 reverted). However, that's deceptive: in
> my testing, the original "--update" option does not bring in any new
> kernel packages, so even if the bug is still there, it is not triggered.
> Because RHEL-9 is based on Fedora 34, which is affected, assume that
> RHEL-9 is affected too.
>
> Signed-off-by: Laszlo Ersek <lersek at redhat.com>
> ---
> virt-p2v-make-disk.in | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/virt-p2v-make-disk.in b/virt-p2v-make-disk.in
> index 865a92847f8b..44ff0b45ac7a 100644
> --- a/virt-p2v-make-disk.in
> +++ b/virt-p2v-make-disk.in
> @@ -48,6 +48,7 @@ eval set -- "$TEMP"
> output=
> upload=
> verbose=
> +declare -a update_option=(--update)
> declare -a passthru
>
> usage ()
> @@ -184,6 +185,19 @@ EOF
> --upload $tmpdir/p2v.conf:/etc/dracut.conf.d/
> --run $tmpdir/post-install
> "
> + # Fedora 34 through 36, and presumably RHEL-9 (based on Fedora 34)
> + # suffer from a bug where a kernel image installation via libguestfs
> + # pollutes the just installed kernel's commandline in the boot loader
> + # config file. Irrelevant and bogus parameters from the appliance
> + # kernel's /proc/cmdline are copied over. This prevents the root
> + # filesystem from being mounted. Refer to
> + # <https://bugzilla.redhat.com/show_bug.cgi?id=1945835#c24> and/or
> + # commit 2764abefaa14.
> + case "$osversion" in
> + fedora-34|fedora-35|fedora-36|rhel-9.*)
> + update_option=(--run-command 'dnf -y update --exclude=kernel\*')
> + ;;
> + esac
> ;;
> debian-*|ubuntu-*)
> depsfile="$datadir/dependencies.debian"
> @@ -246,7 +260,7 @@ virt-builder "$osversion" \
> $preinstall_args \
> --hostname p2v.local \
> --run-command 'hostname p2v.local' \
> - --run-command 'dnf -y update --exclude=kernel\*' \
> + "${update_option[@]}" \
> --install "$install" \
> --root-password password:p2v \
> --upload "$datadir"/issue:/etc/issue \
ACK
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top
More information about the Libguestfs
mailing list