- 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
|
||||
Epoch: 1
|
||||
Version: 2.4.0
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}.alma.1
|
||||
Summary: Convert a virtual machine to run on KVM
|
||||
|
||||
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
|
||||
Patch0036: 0036-Pull-in-a-fix-to-make-Windows-firstboot-more-reliabl.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}
|
||||
# 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
|
||||
* 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
|
||||
- Fixes to improve installation of QEMU Guest Agent and removal
|
||||
of VMware Tools
|
||||
|
Loading…
Reference in New Issue
Block a user