[Libguestfs] [v2v PATCH] convert_linux: include the "xts" module in the initrd

Richard W.M. Jones rjones at redhat.com
Thu Feb 24 10:48:22 UTC 2022


On Wed, Feb 23, 2022 at 05:23:08PM +0100, Laszlo Ersek wrote:
> The conversion may change the CPU model of the domain, which in turn can
> lead to the disappearance of various CPU flags/features, such as "aes"
> (the AES-NI instruction set).
> 
> In RHEL7, the hw-accelerated AES module "aesni_intel" does not depend on
> the "xts" module, whereas the built-in, non-accelerated AES module does
> depend on the (external) "xts" module.
> 
> As a result of the conversion, the target domain may therefore become
> dependent on the "xts" module, for decrypting LUKS block devices that
> employ the "aes-xts-plain64" cipher (which is the default LUKS cipher
> nowadays). When dracut runs in the appliance (in my case:
> dracut-055-6.fc35.x86_64), it does not seem to notice this dependency.
> Thus we need to explicitly include "xts" in the rebuilt initrd, if the
> original kernel provides that module.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1658126
> Signed-off-by: Laszlo Ersek <lersek at redhat.com>
> ---
>  convert/convert_linux.ml | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml
> index 45ce069ad9bf..116d9e06f792 100644
> --- a/convert/convert_linux.ml
> +++ b/convert/convert_linux.ml
> @@ -595,6 +595,7 @@ let convert (g : G.guestfs) source inspect keep_serial_console _ =
>      | None -> ()
>      | Some initrd ->
>        (* Enable the basic virtio modules in the kernel. *)
> +      (* Also forcibly include the "xts" module; see RHBZ#1658126. *)
>        let modules =
>          let modules =
>            (* The order of modules here is deliberately the same as the
> @@ -605,7 +606,7 @@ let convert (g : G.guestfs) source inspect keep_serial_console _ =
>             *)
>            List.filter (fun m -> List.mem m kernel.ki_modules)
>                        [ "virtio"; "virtio_ring"; "virtio_blk";
> -                        "virtio_scsi"; "virtio_net"; "virtio_pci" ] in
> +                        "virtio_scsi"; "virtio_net"; "virtio_pci"; "xts" ] in
>          if modules <> [] then modules
>          else
>            (* Fallback copied from old virt-v2v.  XXX Why not "ide"? *)
> -- 
> 2.19.1.3.g30247aa5d201

ACK (-ed already)

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v




More information about the Libguestfs mailing list