New tool: virt-v2v-open

resolves: RHEL-88985
This commit is contained in:
Richard W.M. Jones 2025-05-07 13:14:18 +01:00
parent 96cc493c74
commit de0be4d153
6 changed files with 1185 additions and 2 deletions

View File

@ -0,0 +1,40 @@
From 8e3d1747271cdf112d05e099302de7520f7f8111 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 30 Apr 2025 13:26:54 +0100
Subject: [PATCH] inspector: Simplify input bandwidth code
We dropped the virt-v2v --bandwidth parameters from
virt-v2v-inspector, but left some dead code around. Simplify that
code.
(cherry picked from commit 7a96d82fb6a6330bc7e667677f62dea64a957188)
---
inspector/inspector.ml | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/inspector/inspector.ml b/inspector/inspector.ml
index ac26146f..16300d45 100644
--- a/inspector/inspector.ml
+++ b/inspector/inspector.ml
@@ -48,8 +48,6 @@ let rec main () =
else output_file := Some filename
in
- let bandwidth = ref None in
- let bandwidth_file = ref None in
let input_conn = ref None in
let input_format = ref None in
let input_password = ref None in
@@ -313,11 +311,7 @@ read the man page virt-v2v-inspector(1).
(module Input_libvirt.Libvirt_) in
let input_options = {
- Input.bandwidth =
- (match !bandwidth, !bandwidth_file with
- | None, None -> None
- | Some rate, None -> Some (StaticBandwidth rate)
- | rate, Some filename -> Some (DynamicBandwidth (rate, filename)));
+ Input.bandwidth = None;
input_conn = input_conn;
input_format = !input_format;
input_options = !input_options;

View File

@ -0,0 +1,49 @@
From e1b9a34aa4e140d3fafea4d0883d0c29fcc204bb Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 11 Apr 2025 10:01:13 +0100
Subject: [PATCH] docs: Rearrange --root titles
Makes the documentation easier to read instead of having a big block
of text.
(cherry picked from commit c1d8ed9bac616c3ba8a807da350f24c7fa54e56a)
---
docs/virt-v2v.pod | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 57714022..1746afa7 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -774,12 +774,6 @@ This disables progress bars and other unnecessary output.
=item B<--root single>
-=item B<--root first>
-
-=item B<--root> /dev/sdX
-
-=item B<--root> /dev/VG/LV
-
Choose the root filesystem to be converted.
In the case where the virtual machine is dual-boot or multi-boot, or
@@ -798,11 +792,17 @@ VM is found to be multi-boot, then virt-v2v will stop and list the
possible root filesystems and ask the user which to use. This
requires that virt-v2v is run interactively.
+=item B<--root first>
+
S<I<--root first>> means to choose the first root device in the case
of a multi-boot operating system. Since this is a heuristic, it may
sometimes choose the wrong one.
-You can also name a specific root device, eg. S<I<--root /dev/sda2>>
+=item B<--root> /dev/sdX
+
+=item B<--root> /dev/VG/LV
+
+Name a specific root device to convert, eg. S<I<--root /dev/sda2>>
would mean to use the second partition on the first hard drive. If
the named root device does not exist or was not detected as a root
device, then virt-v2v will fail.

View File

@ -0,0 +1,39 @@
From bd20b2429f04d8c7b37fbcce243687413dbe434f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 11 Apr 2025 09:49:06 +0100
Subject: [PATCH] docs: Clarify --root first documentation
Clarify that we don't necessarily choose the default bootloader option
(since we don't collect that information). It's just the first in the
list of roots returned by libguestfs.
What is intentionally not documented here is that libguestfs doesn't
necessarily return the roots in any particular order (eg. it's not
sorted alphabetically). If we fix that in future, we might break how
this option works, so don't document any expectations.
(cherry picked from commit bc936379e20e1aab5f569a577663082411f56dc2)
---
docs/virt-v2v.pod | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 1746afa7..84a7d6ac 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -794,9 +794,12 @@ requires that virt-v2v is run interactively.
=item B<--root first>
-S<I<--root first>> means to choose the first root device in the case
-of a multi-boot operating system. Since this is a heuristic, it may
-sometimes choose the wrong one.
+Choose the first root device in the case of a multi-boot operating
+system. Since this is a heuristic, it may sometimes choose the wrong
+one, and it may not choose the default option from the guest
+bootloader. For predictable results it is better to use
+L<virt-v2v-inspector(1)> to inspect the guest and then specify which
+root you want to convert.
=item B<--root> /dev/sdX

View File

@ -0,0 +1,30 @@
From 26d2ba8c21fefb14b6ad2efb380ef08bff0b3b46 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 11 Apr 2025 10:07:20 +0100
Subject: [PATCH] docs: Remove old paragraph about a bug in Grub
This paragraph dates back to 2011 and is unlikely to be relevant now:
https://github.com/rwmjones/old-virt-v2v/commit/36cc57baf395c5b05cc2174d1c04b386b94aaefd
(cherry picked from commit 3019f70565727fb7f03d475be154b1578ea2c51f)
---
docs/virt-v2v.pod | 6 ------
1 file changed, 6 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 84a7d6ac..d65e13ed 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -810,12 +810,6 @@ would mean to use the second partition on the first hard drive. If
the named root device does not exist or was not detected as a root
device, then virt-v2v will fail.
-Note that there is a bug in grub which prevents it from successfully
-booting a multiboot system if virtio is enabled. Grub is only able to
-boot an operating system from the first virtio disk. Specifically,
-F</boot> must be on the first virtio disk, and it cannot chainload an
-OS which is not in the first virtio disk.
-
=item B<-v>
=item B<--verbose>

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
Name: virt-v2v
Epoch: 1
Version: 2.7.1
Release: 10%{?dist}
Release: 11%{?dist}
Summary: Convert a virtual machine to run on KVM
License: GPL-2.0-or-later AND LGPL-2.0-or-later
@ -77,6 +77,11 @@ Patch0046: 0046-v2v-Remove-no-trim-and-vmtype-options.patch
Patch0047: 0047-v2v-Remove-password-file-option.patch
Patch0048: 0048-input-nbdkit_vddk.ml-Rename-path-parameter-to-file.patch
Patch0049: 0049-input-Add-io-vddk-file-.-option.patch
Patch0050: 0050-inspector-Simplify-input-bandwidth-code.patch
Patch0051: 0051-docs-Rearrange-root-titles.patch
Patch0052: 0052-docs-Clarify-root-first-documentation.patch
Patch0053: 0053-docs-Remove-old-paragraph-about-a-bug-in-Grub.patch
Patch0054: 0054-Add-new-virt-v2v-open-tool.patch
%if !0%{?rhel}
# libguestfs hasn't been built on i686 for a while since there is no
@ -345,6 +350,7 @@ make -C tests TESTS=test-fedora-luks-on-lvm-conversion.sh check
%{_libexecdir}/virt-v2v-in-place
%endif
%{_bindir}/virt-v2v-inspector
%{_bindir}/virt-v2v-open
%{_mandir}/man1/virt-v2v.1*
%{_mandir}/man1/virt-v2v-hacking.1*
%{_mandir}/man1/virt-v2v-input-vmware.1*
@ -353,6 +359,7 @@ make -C tests TESTS=test-fedora-luks-on-lvm-conversion.sh check
%{_mandir}/man1/virt-v2v-in-place.1*
%endif
%{_mandir}/man1/virt-v2v-inspector.1*
%{_mandir}/man1/virt-v2v-open.1*
%{_mandir}/man1/virt-v2v-output-local.1*
%{_mandir}/man1/virt-v2v-output-openstack.1*
%{_mandir}/man1/virt-v2v-output-rhv.1*
@ -378,7 +385,7 @@ make -C tests TESTS=test-fedora-luks-on-lvm-conversion.sh check
%changelog
* Tue Apr 29 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.1-10
* Wed May 07 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.1-11
- mlcustomize: Remove dnf --verbose option
resolves: RHEL-83289
- Print blkhash of converted image in virt-v2v debugging output
@ -395,6 +402,8 @@ make -C tests TESTS=test-fedora-luks-on-lvm-conversion.sh check
resolves: RHEL-88863
- Remove several ancient, deprecated options
resolves: RHEL-88866
- New tool: virt-v2v-open
resolves: RHEL-88985
* Tue Feb 25 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.1-5
- Rebase to upstream development version 2.7.1