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 <ler...@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
_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to