- convert: windows: Online all virtio disks at first boot
- Add warning about virt-v2v-in-place not being supported
This commit is contained in:
parent
22250a7983
commit
54f3394565
@ -0,0 +1,24 @@
|
|||||||
|
From 1dec94e52974e45fd3962dcbd51882fde7e9c306 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Tue, 9 Jul 2024 11:30:09 +0100
|
||||||
|
Subject: [PATCH] RHEL: Add warning about virt-v2v-in-place not being supported
|
||||||
|
|
||||||
|
Fixes: https://issues.redhat.com/browse/RHEL-40903
|
||||||
|
---
|
||||||
|
in-place/in_place.ml | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/in-place/in_place.ml b/in-place/in_place.ml
|
||||||
|
index 1c690a54..a70e812b 100644
|
||||||
|
--- a/in-place/in_place.ml
|
||||||
|
+++ b/in-place/in_place.ml
|
||||||
|
@@ -197,6 +197,9 @@ read the man page virt-v2v-in-place(1).
|
||||||
|
let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true ~machine_readable:true usage_msg in
|
||||||
|
Getopt.parse opthandle.getopt;
|
||||||
|
|
||||||
|
+ warning "virt-v2v-in-place is NOT SUPPORTED for command line use. \
|
||||||
|
+ It is almost always better to use virt-v2v instead of this tool.";
|
||||||
|
+
|
||||||
|
(* Print the version, easier than asking users to tell us. *)
|
||||||
|
debug "%s: %s %s (%s)"
|
||||||
|
prog Config.package_name Config.package_version_full
|
@ -0,0 +1,93 @@
|
|||||||
|
From d26ed76801f9d3ce5d3863ca09dfa653b4bcd1b2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Richard W.M. Jones" <rjones@redhat.com>
|
||||||
|
Date: Tue, 27 Aug 2024 12:36:41 +0100
|
||||||
|
Subject: [PATCH] convert: windows: Online all virtio disks at first boot
|
||||||
|
|
||||||
|
Windows 2022 (and possibly earlier versions back to around 2019) will
|
||||||
|
force offline any non-boot disks which change bus, apparently as a
|
||||||
|
security mitigation. The effect of this is that although the system
|
||||||
|
drive (C:) is present after conversion, other drives may seem to
|
||||||
|
disappear.
|
||||||
|
|
||||||
|
Running a Powershell script to bring all disks online seems risky.
|
||||||
|
The compromise is to bring online only virtio disks at first boot.
|
||||||
|
|
||||||
|
To further reduce risk, we only do this if there are non-system disks
|
||||||
|
(ie. > 1 disks in total), and only if we installed virtio drivers.
|
||||||
|
|
||||||
|
Fixes: https://issues.redhat.com/browse/RHEL-55763
|
||||||
|
Fixes: https://issues.redhat.com/browse/RHEL-55837
|
||||||
|
Related: https://issues.redhat.com/browse/MTV-1299
|
||||||
|
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1662286
|
||||||
|
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
|
||||||
|
Thanks: Martin Necas
|
||||||
|
Acked-by: Martin Necas
|
||||||
|
(cherry picked from commit cb56f6f94dc153051515fc7aa0d9ca646f5e2340)
|
||||||
|
---
|
||||||
|
convert/convert_windows.ml | 39 +++++++++++++++++++++++++++++++++++++-
|
||||||
|
1 file changed, 38 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml
|
||||||
|
index 52ca5bbe..352e1218 100644
|
||||||
|
--- a/convert/convert_windows.ml
|
||||||
|
+++ b/convert/convert_windows.ml
|
||||||
|
@@ -38,7 +38,8 @@ module G = Guestfs
|
||||||
|
* time the Windows VM is booted on KVM.
|
||||||
|
*)
|
||||||
|
|
||||||
|
-let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
|
||||||
|
+let convert (g : G.guestfs) source inspect i_firmware
|
||||||
|
+ block_driver _ static_ips =
|
||||||
|
(*----------------------------------------------------------------------*)
|
||||||
|
(* Inspect the Windows guest. *)
|
||||||
|
|
||||||
|
@@ -272,6 +273,8 @@ let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
|
||||||
|
Registry.with_hive_write g inspect.i_windows_software_hive
|
||||||
|
update_software_hive;
|
||||||
|
|
||||||
|
+ configure_online_disks block_driver;
|
||||||
|
+
|
||||||
|
configure_network_interfaces net_driver;
|
||||||
|
|
||||||
|
fix_ntfs_heads ();
|
||||||
|
@@ -662,6 +665,40 @@ let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
|
||||||
|
warning (f_"could not find registry key \
|
||||||
|
HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion")
|
||||||
|
|
||||||
|
+ and configure_online_disks block_driver =
|
||||||
|
+ (* If there are > 1 disks, run a script which will force Windows
|
||||||
|
+ * to bring them all online. Windows 2022 will offline non-boot disks
|
||||||
|
+ * where the bus changes as some sort of "security" mitigation.
|
||||||
|
+ * https://issues.redhat.com/browse/RHEL-55837
|
||||||
|
+ * https://issues.redhat.com/browse/MTV-1299
|
||||||
|
+ * https://bugzilla.redhat.com/show_bug.cgi?id=1662286
|
||||||
|
+ *)
|
||||||
|
+ let virtio_installed =
|
||||||
|
+ match block_driver with
|
||||||
|
+ | Inject_virtio_win.Virtio_blk | Virtio_SCSI -> true
|
||||||
|
+ | IDE -> false in
|
||||||
|
+ let more_than_one_disk = List.length source.s_disks > 1 in
|
||||||
|
+
|
||||||
|
+ if virtio_installed && more_than_one_disk then (
|
||||||
|
+ let psh_filename = "online-disks" in
|
||||||
|
+ let psh = ref [] in
|
||||||
|
+ let add = List.push_back psh in
|
||||||
|
+
|
||||||
|
+ add "# Uncomment this line for lots of debug output.";
|
||||||
|
+ add "# Set-PSDebug -Trace 1";
|
||||||
|
+ add "";
|
||||||
|
+ add "Write-Host \"Online all virtio disks\"";
|
||||||
|
+ add "";
|
||||||
|
+ add "Get-Disk | Where { $_.FriendlyName -like '*VirtIO*' } | % {";
|
||||||
|
+ add " Write-Host (' - ' + $_.Number + ': ' + $_.FriendlyName + '(' + [math]::Round($_.Size/1GB,2) + 'GB)')";
|
||||||
|
+ add " $_ | Set-Disk -IsOffline $false";
|
||||||
|
+ add " $_ | Set-Disk -IsReadOnly $false";
|
||||||
|
+ add "}";
|
||||||
|
+
|
||||||
|
+ (* Install the Powershell script to run late at firstboot. *)
|
||||||
|
+ Firstboot.add_firstboot_powershell g inspect.i_root psh_filename !psh
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
and configure_network_interfaces net_driver =
|
||||||
|
(* If we were asked to force network interfaces to have particular
|
||||||
|
* static IP addresses then it is done here by installing a
|
@ -16,7 +16,7 @@
|
|||||||
Name: virt-v2v
|
Name: virt-v2v
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.4.0
|
Version: 2.4.0
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}.alma.1
|
||||||
Summary: Convert a virtual machine to run on KVM
|
Summary: Convert a virtual machine to run on KVM
|
||||||
|
|
||||||
License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
License: GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||||
@ -73,6 +73,11 @@ Patch0034: 0034-docs-Add-a-note-about-removal-of-VMware-Tools-on-Win.patch
|
|||||||
Patch0035: 0035-Update-common-submodule.patch
|
Patch0035: 0035-Update-common-submodule.patch
|
||||||
Patch0036: 0036-Pull-in-a-fix-to-make-Windows-firstboot-more-reliabl.patch
|
Patch0036: 0036-Pull-in-a-fix-to-make-Windows-firstboot-more-reliabl.patch
|
||||||
Patch0037: 0037-docs-Restate-position-on-removal-of-VMware-Tools.patch
|
Patch0037: 0037-docs-Restate-position-on-removal-of-VMware-Tools.patch
|
||||||
|
# Patches were taken from:
|
||||||
|
# https://gitlab.com/redhat/centos-stream/rpms/virt-v2v/-/commit/620a64c9a372c5508695c424377bff5379c8e08b
|
||||||
|
Patch0038: 0038-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
|
||||||
|
# https://gitlab.com/redhat/centos-stream/rpms/virt-v2v/-/commit/3959367bee3f6ac93e00b23b77fade0ddd0fc062
|
||||||
|
Patch0039: 0039-convert-windows-Online-all-virtio-disks-at-first-boo.patch
|
||||||
|
|
||||||
%if !0%{?rhel}
|
%if !0%{?rhel}
|
||||||
# libguestfs hasn't been built on i686 for a while since there is no
|
# libguestfs hasn't been built on i686 for a while since there is no
|
||||||
@ -377,6 +382,10 @@ make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Sep 03 2024 Eduard Abdullin <eabdullin@almalinux.org> - 1:2.4.0-4.alma.1
|
||||||
|
- convert: windows: Online all virtio disks at first boot
|
||||||
|
- Add warning about virt-v2v-in-place not being supported
|
||||||
|
|
||||||
* Tue Aug 13 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.4.0-3
|
* Tue Aug 13 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.4.0-3
|
||||||
- Fixes to improve installation of QEMU Guest Agent and removal
|
- Fixes to improve installation of QEMU Guest Agent and removal
|
||||||
of VMware Tools
|
of VMware Tools
|
||||||
|
Loading…
Reference in New Issue
Block a user