=head1 NAME

virt-v2v-release-notes - virt-v2v release notes for 2.8

=head1 DESCRIPTION

These are the release notes for S<B<virt-v2v 2.8>>.
This describes the major changes since 2.6.

Virt-v2v 2.8.0 was released on S<B<11th June 2025>>.

=begin comment

=head2 Security

=end comment

=head2 New features

New L<virt-v2v-open(1)> tool.  This can be used to open the virt-v2v
source and run a user program on it.  For example L<virt-inspector(1)>
or L<guestfish(1)> can be used to examine the source to discover what
operating systems or files are present before conversion.

Windows Server 2025 is supported (thanks Ming Xie).

Two features have been added to enhance data integrity.  Firstly you
can specify a C<E<lt>checksumE<gt>> field for each input disk (when
importing from libvirt).  Virt-v2v will verify the checksum of the
actual disk matches the expected checksum.  Secondly virt-v2v in debug
mode now computes the blkhash (a type of checksum) of the converted
disk and prints it out, allowing you to compare the blkhash with the
final output.

The UEFI secureboot property is now modelled correctly, and (for
outputs which support it) is reflected in the output metadata (thanks
Daniel Berrange, Andrea Bolognani, Ming Xie).

Parallel disk copies are now possible, using the I<--parallel=N>
option.  The default behaviour is still to do serial copies.

L<virt-v2v-in-place(1)> has a new I<-O> option.  This generates the
same output as L<virt-v2v-inspector(1)>, allowing callers to combine
both passes into one.

Virtio-win driver selection has been made more robust.  It now selects
the correct drivers to install in more cases, and avoids installing
unnecessary debugging and SRIOV files.  Libosinfo is no longer used
for this as the osinfo metadata used had grown out of date.  (Cole
Robinson)

We now check filesystem integrity (using tools like L<fsck(8)>) before
and after conversion, to ensure both that we fully understand the
filesystem before conversion and that no corruption has happened
during conversion.  At the moment this is only implemented for Btrfs,
ext4 and XFS.

=head2 Features removed

Handling of I<kmod-xenpv> has been removed.  This only applied to RHEL
3 and RHEL 4 guests being converted from very ancient versions of Xen
(Cole Robinson).

Some options that have been deprecated since 2018 and earlier were
removed:

=over 4

=item I<--compressed>

Use I<-oo compressed> instead.

=item I<--no-trim>

This did nothing.

=item I<--password-file>

Use I<--ip> instead.

=item I<--qemu-boot>

Use I<-oo qemu-boot> instead.

=item I<--vddk-*>

Use I<--io vddk-*> instead.

=item I<--vdsm-*>

Use I<--oo vdsm-*> instead.

=item I<--vmtype>

This did nothing.

=back

The options I<-o rhv-upload> and I<-o rhv> have been renamed to I<-o
ovirt-upload> and I<-o ovirt> respectively, although aliases for the
other names remain.

=head2 Other fixes

Update support page to cover RHEL 10 and Windows Server 2025.

When importing from libvirt sources, trim whitespace from around the
C<E<lt>nameE<gt>> element, rather than creating a guest name
containing that whitespace.

We no longer overwrite the EFI grub2 wrapper file
(F</boot/efi/EFI/E<lt>OSE<gt>/grub.cfg>) on Fedora E<ge> 34 and RHEL
E<ge> 9.0.

When removing packages during conversion, use yum, apt, and similar
tools so that dependencies are also removed (Cole Robinson).

When some rpm commands run in the context of the guest produced more
than 4MB of output, virt-v2v conversions would fail.  This has now
been fixed (thanks Nijin Ashok).

Virt-v2v is now compatible with guests that use dnf5.

I<-i vmx> mode now supports importing guests with SATA-emulated disks.

Converting from a VMware snapshot is now possible, when using VDDK,
using the I<io vddk-file=...> options (thanks Martin Necas).

Conversion failures when guest F</etc/resolv.conf> is immutable are
common enough that we have now documented this problem in the manual
(thanks Dan Clark).

Debug information now contains much more readable information about
guest mountpoints, similar to the output of L<virt-df(1)>.

I<-o libvirt> mode no longer generates its own osinfo short IDs.
Instead we use the osinfo short IDs from libguestfs inspection (Cole
Robinson).

Document how to activate Bitlocker for Windows 11 with vTPM
(thanks Ming Xie).

=head2 Build changes

json-c is now required.  This replaces Jansson which was previously
used for parsing JSON input files.

libguestfs E<ge> 1.56 is now required.

OCaml E<ge> 4.08 is now required.

libnbd E<ge> 1.14 is now required.

nbdkit E<ge> 1.28 is now required, although it is better to use more
recent versions where possible.

OCaml oUnit is no longer used.

We now assume that C<__attribute__((cleanup))> always works.  This
requires gcc or Clang.

The configure option I<--with-virt-v2v-nbdkit-python-plugin> has been
removed.  It was only needed for very old versions of nbdkit and
Python.

Tests should no longer break if ntfs-3g is not supported by
libguestfs.

Fix compatibility with GNU gettext 0.25.

=head2 Internals

The tests were modified to use a set of common functions and remove
use of the weird C<$TEST_FUNCTIONS> macro, similar to how we do it in
nbdkit.

The way we generate the phony virtio-win drivers (for testing) has
been simplified.  Also there are new regression tests to ensure that
virt-v2v installs the correct set of driver files.  (Cole Robinson).

Phony Windows guests are now generated for several different versions
of Windows, allowing more broad testing (Cole Robinson).

Some deprecated autoconf macros are no longer used.

L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help
performance now that we have switched to using L<nbdcopy(1)> (thanks
Martin Kletzander).

With multi-disk guests, in some common cases we are now able to use a
single L<nbdkit(1)> instance to read or write all disks, instead of
needing to run an nbdkit instance per disk, which can greatly reduce
the number of external processes that virt-v2v will run.  The
performance and results should not be different.  To take full
advantage of this you have to use nbdkit E<ge> 1.44.

Several typos and spelling mistakes in the documentation were fixed
(thanks Eric Blake).

Duplicated code used to parse input (I<-i>) and output (I<-o>) options
across the tools has been refactored in one place.

Some internal OCaml List and String functions that we used have been
replaced by ones from the OCaml stdlib, reducing code maintenance.

=head2 Bugs fixed

=begin comment

./bugs-in-changelog.sh v2.6.0..

# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f

=end comment

=over 4

=item L<https://issues.redhat.com/browse/MTV-2256>

Document issues with upgrading Windows guests after conversion

=item L<https://issues.redhat.com/browse/RHEL-32099>

Harden grub2-mkconfig to avoid overwriting /boot/efi/EFI/redhat/grub.cfg

=item L<https://issues.redhat.com/browse/RHEL-39077>

v2v can't convert the guest if info "add_dracutmodules+="
network-legacy " is added to network-legacy.conf [rhel-9.6]

=item L<https://issues.redhat.com/browse/RHEL-58032>

v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]

=item L<https://issues.redhat.com/browse/RHEL-65009>

Can't find drivers from virtio-win for win2025 guests during v2v
conversion [rhel 10.0]

=item L<https://issues.redhat.com/browse/RHEL-65010>

Can't find drivers from virtio-win for win2025 guests during v2v
conversion [rhel 9.6]

=item L<https://issues.redhat.com/browse/RHEL-66197>

[MTV] migration failed with module "network-legacy" configured in RHEL
8 guests

=item L<https://issues.redhat.com/browse/RHEL-67007>

[RFE] Add secureboot info in kubevirt output [rhel-9.7]

=item L<https://issues.redhat.com/browse/RHEL-67836>

RFE: Get the uefi.secureBoot.enabled setting from VMware sources
[rhel-9.6]

=item L<https://issues.redhat.com/browse/RHEL-71522>

Migration Plan / vddk pod cannot remove open-vm-tools in case of
dependencies [rhel-9.6]

=item L<https://issues.redhat.com/browse/RHEL-77989>

CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]

=item L<https://issues.redhat.com/browse/RHEL-80080>

Converting a SUSE VM will fail if the kernel-source package is
installed in the source VM

=item L<https://issues.redhat.com/browse/RHEL-85508>

Improve checksumming and data consistency checks in virt-v2v, libnbd,
nbdkit

=item L<https://issues.redhat.com/browse/RHEL-85512>

Print blkhash of converted image in virt-v2v debugging output [9.7]

=item L<https://issues.redhat.com/browse/RHEL-85514>

Print blkhash of converted image in virt-v2v debugging output [10.1]

=item L<https://issues.redhat.com/browse/RHEL-86022>

There is no nbdcopy info in v2v debug log since virt-v2v version
2.7.1-2 [rhel-9.7]

=item L<https://issues.redhat.com/browse/RHEL-88543>

virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]

=item L<https://issues.redhat.com/browse/RHEL-88985>

Add possible roots to the virt-v2v-inspector output [rhel-9.7]

=item L<https://issues.redhat.com/browse/RHEL-70840>

v2v can't convert win11-efi-secure guest with vtpm: "Activation of
partially decrypted BITLK device is not supported" [rhel-9.6]

=item L<https://github.com/libguestfs/virt-v2v/issues/79>

virt-v2v 2.7.4 error: libguestfs error: you must call
guestfs_add_drive before guestfs_launch

=item L<https://github.com/libguestfs/virt-v2v/issues/86>

Rename RHV to oVirt

=back

=head1 SEE ALSO

L<virt-v2v(1)>.

=head1 AUTHORS

Authors of virt-v2v 2.8:

=begin comment

git shortlog -s v2.6.0..

=end comment

=over 4

=item Cole Robinson

=item Krascovict Petrov

=item Richard W.M. Jones

=item Ricky Tigg

=item Yuri Chornoivan

=back

=head1 COPYRIGHT

Copyright (C) 2009-2025 Red Hat Inc.
