Rebase to virt-v2v 2.9.10

resolves: RHEL-111241

Use AV and GPO information from inspection instead of open coding
resolves: RHEL-125956

Synchronize spec file with Fedora.
This commit is contained in:
Richard W.M. Jones 2025-11-05 12:43:14 +00:00
parent bf59719e6a
commit 98afb8ae74
19 changed files with 30 additions and 1151 deletions

View File

@ -1,4 +1,4 @@
From 681e32b4c9b6eb5cda7cba6bc7420a8bfcdb8ae1 Mon Sep 17 00:00:00 2001
From e3f234e9a3a6f56c455c5fe3189a3fb91da3a9f8 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 30 Aug 2015 03:21:57 -0400
Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport.

View File

@ -1,49 +0,0 @@
From 75201855045c1ae45a06de5ccb4e7f079d294c5d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 20 Oct 2025 09:32:54 +0100
Subject: [PATCH] convert: windows: Warn about Trend Micro anti-virus
Seen in the wild and suspected of causing conversion problems:
{app2_name: ApexOneNT,
app2_display_name: Trend Micro Apex One Security Agent,
app2_epoch: 0,
app2_version: 14.0.12980,
app2_release: ,
app2_arch: ,
app2_install_path: ,
app2_trans_path: ,
app2_publisher: Trend Micro Inc.,
app2_url: http://www.trendmicro.com/,
app2_source_package: ,
app2_summary: ,
app2_description: ,
app2_spare1: ,
app2_spare2: ,
app2_spare3: ,
app2_spare4: ,
}
---
convert/windows.ml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/convert/windows.ml b/convert/windows.ml
index 2dde6b30..f28c7e09 100644
--- a/convert/windows.ml
+++ b/convert/windows.ml
@@ -29,6 +29,7 @@ let rex_kaspersky = PCRE.compile ~caseless:true "kaspersky"
let rex_mcafee = PCRE.compile ~caseless:true "mcafee"
let rex_norton = PCRE.compile ~caseless:true "norton"
let rex_sophos = PCRE.compile ~caseless:true "sophos"
+let rex_trend = PCRE.compile ~caseless:true "ApexOneNT"
let rex_avg_tech = PCRE.compile ~caseless:true "avg technologies" (* RHBZ#1261436 *)
let rec detect_antivirus { Types.i_type = t; i_apps = apps } =
@@ -42,6 +43,7 @@ and check_app { Guestfs.app2_name = name;
name =~ rex_mcafee ||
name =~ rex_norton ||
name =~ rex_sophos ||
+ name =~ rex_trend ||
publisher =~ rex_avg_tech
and (=~) str rex = PCRE.matches rex str

View File

@ -1,4 +1,4 @@
From f7bd84153c6f579ac257d7ddda0c0c15adec0c94 Mon Sep 17 00:00:00 2001
From 22cd3a31ccf7ae81008a311c9c8df6630e64dda3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 28 Sep 2014 19:14:43 +0100
Subject: [PATCH] RHEL: v2v: Select correct qemu binary for -o qemu mode

View File

@ -1,120 +0,0 @@
From dda93d7fd3ef5b2cdf25cfefa0b2d41207fa54f6 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 20 Oct 2025 14:50:07 +0100
Subject: [PATCH] input/input_vddk.ml: Pass only longest prefix to vddk export
parameter
See discussion on https://gitlab.com/nbdkit/nbdkit/-/merge_requests/113
nbdkit commit 01b429c412 ("vddk: Don't use FNM_PATHNAME when matching
export parameter") removes the FNM_PATHNAME restriction, so we can
just use the longest common prefix again.
This change requires nbdkit >= 1.45.11. I think it's time to raise
the minimum version of nbdkit anyway, so starting with virt-v2v 2.10,
nbdkit 1.46 will be required. If you use too old nbdkit you will see
the error:
virt-v2v: error: nbdkit must be >= 1.45.11 for input from VDDK
This partially reverts commit ba86b22c75 ("input/input_vddk.ml: Handle
subdirectories in nbdkit vddk export wildcard") but I didn't actually
revert that commit because I wanted to keep the explantory comments in
the code.
Reverts: commit ba86b22c75
Related: https://gitlab.com/nbdkit/nbdkit/-/merge_requests/113
Related: https://gitlab.com/nbdkit/nbdkit/-/commit/01b429c412504a491a4b5cc009a9c2e906f993ef
Related: https://issues.redhat.com/browse/RHEL-121728
---
README | 2 +-
input/input_vddk.ml | 43 +++++++++++++------------------------------
2 files changed, 14 insertions(+), 31 deletions(-)
diff --git a/README b/README
index 407869b4..b21cb87d 100644
--- a/README
+++ b/README
@@ -56,7 +56,7 @@ REQUIREMENTS
* OCaml bindings for libnbd
-* nbdkit >= 1.28 (https://gitlab.com/nbdkit/nbdkit)
+* nbdkit >= 1.45.11 (https://gitlab.com/nbdkit/nbdkit)
* These nbdkit plugins and filters:
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
index 92214677..ad0e300f 100644
--- a/input/input_vddk.ml
+++ b/input/input_vddk.ml
@@ -36,11 +36,15 @@ open Input
let libNN = sprintf "lib%d" Sys.word_size
(* Calculate the nbdkit vddk plugin 'export' parameter. This is a
- * wildcard that must match all filenames given. nbdkit uses
- * 'fnmatch (export, filename, FNM_PATHNAME)' when checking this,
- * which means:
- * - We have to escape any fnmatch-special chars such as '[' and '*'
- * - '*' does not match '/' characters in the filename
+ * wildcard that must match all filenames given.
+ *
+ * nbdkit 1.44 used 'fnmatch (export, filename, FNM_PATHNAME)'
+ * which means '*' does not match '/' characters in the filename.
+ * Unfortunately this made it impossible to match certain paths,
+ * in particular if the guest has some files in a subdirectory.
+ *
+ * nbdkit 1.46 relaxes this to 'fnmatch (export, filename, 0)',
+ * so a simple longest prefix works.
*)
let get_vddk_export_wildcard = function
| [] -> assert false (* can't happen, checked by the caller *)
@@ -50,37 +54,14 @@ let get_vddk_export_wildcard = function
List.iter (fun f -> assert (String.ends_with ".vmdk" f)) files;
(* Calculate the longest common prefix of all the filenames.
- * Remove the prefix from each filename, leaving the remainder strings.
- * eg.
- * "foobar", "foobazs" => prefix = "fooba", remainders = ["r", "zs"]
+ * eg. "foobar", "foobazs" => prefix = "fooba"
*)
let prefix = String.longest_common_prefix files in
- let prefix_len = String.length prefix in
- let remainders = List.map (
- fun f ->
- let n = String.length f in
- assert (prefix_len <= n);
- String.sub f prefix_len (n - prefix_len)
- ) files in
-
- (* The number of '/' (slash) characters in the remainders must be
- * the same, otherwise there's something weird with subdirectories
- * going on that we can't handle yet. (XXX If this happens, then
- * we'd need to change nbdkit because it cannot possibly handle
- * a wildcard that matches different directory depths).
- *)
- let count_slashes = List.map (String.count_chars '/') remainders in
- let nr_slashes = List.hd count_slashes in
- List.iter (fun nr -> assert (nr_slashes = nr)) count_slashes;
-
- (* Now we need to generate "*/*/*" for this number of slashes. *)
- let stars = List.make (nr_slashes+1) "*" in
- let stars_n_slashes = String.concat "/" stars in
(* Construct the final wildcard. Note we only need to
* escape the prefix (the only part which is user content).
*)
- fnmatch_escape prefix ^ stars_n_slashes ^ ".vmdk"
+ fnmatch_escape prefix ^ "*.vmdk"
module VDDK = struct
let to_string options args =
@@ -300,6 +281,8 @@ sed 's/.*Fingerprint=\([A-F0-9:]\+\)/\1/' |}
(* Check we have nbdkit and the vddk plugin and the cow filter. *)
if not (Nbdkit.is_installed ()) then
error (f_"nbdkit is not installed or not working");
+ if not (Nbdkit.version () >= (1, 45, 11)) then
+ error (f_"nbdkit must be >= 1.45.11 for input from VDDK");
if not (Nbdkit.probe_plugin "vddk") then
error (f_"nbdkit-vddk-plugin is not installed");
if not (Nbdkit.probe_filter "cow") then

View File

@ -1,4 +1,4 @@
From 075e3aac91a8a22fc3af41ca42cea5f8ed73fc8e Mon Sep 17 00:00:00 2001
From 541c26ca0004bbc7a3eb7826fee17ef7ee0b013b Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 30 Sep 2014 10:50:27 +0100
Subject: [PATCH] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option

View File

@ -1,52 +0,0 @@
From 1cb7a3018456771ed60b77943989f6dfb0555467 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 28 Oct 2025 08:55:55 +0000
Subject: [PATCH] test-data/phony-guests/make-windows-img.sh: Minor tweaks
Since we know we're running bash, we can use [[ =~ ]] rather than
running an external grep command.
Also format everything with 4 space indents as standard.
---
test-data/phony-guests/make-windows-img.sh | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh
index b52d2522..475d8d14 100755
--- a/test-data/phony-guests/make-windows-img.sh
+++ b/test-data/phony-guests/make-windows-img.sh
@@ -27,10 +27,10 @@ OSNAME=${IMAGENAME%".img"}
SOFTWARE_REG="$SRCDIR/$OSNAME-software.reg.bin"
SYSTEM_REG="$SRCDIR/windows-system.reg.bin"
-if echo "$IMAGENAME" | grep -q "\-32"; then
- CMD_EXE="$SRCDIR/../binaries/bin-win32.exe"
+if [[ "$IMAGENAME" =~ -32 ]]; then
+ CMD_EXE="$SRCDIR/../binaries/bin-win32.exe"
else
- CMD_EXE="$SRCDIR/../binaries/bin-win64.exe"
+ CMD_EXE="$SRCDIR/../binaries/bin-win64.exe"
fi
# If the currently compiled libguestfs doesn't support
@@ -38,13 +38,13 @@ fi
# Nothing actually uses these images in the standard build so we can
# just 'touch' it and emit a warning.
if ! guestfish -a /dev/null run : available "ntfs3g ntfsprogs"; then
- echo "***"
- echo "Warning: cannot create $IMAGENAME because there is no NTFS"
- echo "support in this build of libguestfs. Just touching the output"
- echo "file instead."
- echo "***"
- touch $IMAGENAME
- exit 0
+ echo "***"
+ echo "Warning: cannot create $IMAGENAME because there is no NTFS"
+ echo "support in this build of libguestfs. Just touching the output"
+ echo "file instead."
+ echo "***"
+ touch $IMAGENAME
+ exit 0
fi
# Create a disk image.

View File

@ -1,4 +1,4 @@
From 603d391a43250b3a495bdb354410db6a2ddff0ec Mon Sep 17 00:00:00 2001
From b6a7c919aa5cbe34f55864eb15c41efeb0939693 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 24 Apr 2015 09:45:41 -0400
Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu

View File

@ -1,540 +0,0 @@
From ec57b5f69204711db54b39bc42852a2f921d1fe1 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 28 Oct 2025 09:05:42 +0000
Subject: [PATCH] test-data/phony-guests: Create one Windows UEFI image for
testing
Our existing script only created (phony) BIOS images. However it's
useful to have at least one UEFI image around for testing, since the
code path within virt-v2v is different.
The specifics of the changes needed are:
- Use GPT instead of MBR (do this even for BIOS)
- Set the first partition type to either BIOS or ESP, latter for UEFI
- Use VFAT instead of NTFS for the first partition
- For UEFI only, put a BCD hive on the first partition, since
virt-v2v attempts to edit it
---
test-data/phony-guests/Makefile.am | 19 +-
test-data/phony-guests/make-windows-img.sh | 46 ++-
test-data/phony-guests/windows-bcd.reg | 365 +++++++++++++++++++++
3 files changed, 423 insertions(+), 7 deletions(-)
create mode 100644 test-data/phony-guests/windows-bcd.reg
diff --git a/test-data/phony-guests/Makefile.am b/test-data/phony-guests/Makefile.am
index 47b9ddf8..9ccf10ba 100644
--- a/test-data/phony-guests/Makefile.am
+++ b/test-data/phony-guests/Makefile.am
@@ -45,6 +45,8 @@ EXTRA_DIST = \
windows-software-all.reg \
windows-system.reg \
windows-system.reg.bin \
+ windows-bcd.reg \
+ windows-bcd.reg.bin \
minimal-hive \
make-guests-all-good.pl \
guests.xml.in
@@ -68,6 +70,7 @@ disk_images = \
win10.img \
win11.img \
win2k22.img \
+ win2k22-uefi.img \
win2k25.img \
win7-32.img \
winxp-32.img \
@@ -153,6 +156,13 @@ win%.img: make-windows-img.sh \
windows-system.reg.bin
SRCDIR=$(srcdir) $(top_builddir)/run --test ./$< $@
+# Make a (dummy) Windows UEFI image.
+win2k22-uefi.img: make-windows-img.sh \
+ win2k22-software.reg.bin \
+ windows-system.reg.bin \
+ windows-bcd.reg.bin
+ SRCDIR=$(srcdir) $(top_builddir)/run --test ./$< $@
+
# This is the 'latest` windows image used by most test cases
windows.img: win2k22.img
ln -f $< $@
@@ -191,10 +201,17 @@ windows-system.reg.bin: windows-system.reg
hivexregedit --merge $@-t --prefix 'HKEY_LOCAL_MACHINE\SYSTEM' $<
mv $@-t $@
+windows-bcd.reg.bin: windows-bcd.reg
+ rm -f $@ $@-t
+ cp $(srcdir)/minimal-hive $@-t
+ hivexregedit --merge $@-t $<
+ mv $@-t $@
+
DISTCLEANFILES += \
fedora.db \
windows-software.reg.bin \
- windows-system.reg.bin
+ windows-system.reg.bin \
+ windows-bcd.reg.bin
# Don't construct the guests in parallel. In automake 1.13, check_DATA
# was changed so it can now run in parallel, but this causes everything
diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh
index 475d8d14..5b3f7912 100755
--- a/test-data/phony-guests/make-windows-img.sh
+++ b/test-data/phony-guests/make-windows-img.sh
@@ -23,7 +23,14 @@ set -e
IMAGENAME="$1"
test -z "$IMAGENAME" && (echo "Must pass image name" ; exit 1)
-OSNAME=${IMAGENAME%".img"}
+
+if [[ "$IMAGENAME" =~ -uefi ]]; then
+ EFI=1
+ OSNAME=${IMAGENAME%"-uefi.img"}
+else
+ OSNAME=${IMAGENAME%".img"}
+fi
+
SOFTWARE_REG="$SRCDIR/$OSNAME-software.reg.bin"
SYSTEM_REG="$SRCDIR/windows-system.reg.bin"
@@ -47,21 +54,44 @@ if ! guestfish -a /dev/null run : available "ntfs3g ntfsprogs"; then
exit 0
fi
+# Extra initialization required for UEFI.
+if test "$EFI" = "1"; then
+ BCD="$SRCDIR/windows-bcd.reg.bin"
+ EFI_COMMANDS="
+# Set /dev/sda1 as the EFI system partition (ESP)
+part_set_gpt_type /dev/sda 1 C12A7328-F81F-11D2-BA4B-00A0C93EC93B
+
+# Create a boot ESP similar to Windows 11
+mount /dev/sda1 /Windows/TEMP
+
+mkdir /Windows/TEMP/EFI
+mkdir /Windows/TEMP/EFI/Boot
+touch /Windows/TEMP/EFI/Boot/bootx64.efi
+
+mkdir /Windows/TEMP/EFI/Microsoft
+mkdir /Windows/TEMP/EFI/Microsoft/Boot
+touch /Windows/TEMP/EFI/Microsoft/Boot/bootmgf.efi
+touch /Windows/TEMP/EFI/Microsoft/Boot/bootmgfw.efi
+upload $BCD /Windows/TEMP/EFI/Microsoft/Boot/BCD
+"
+fi
+
# Create a disk image.
guestfish <<EOF
sparse $IMAGENAME-t 512M
run
# Format the disk.
-part-init /dev/sda mbr
+part-init /dev/sda gpt
part-add /dev/sda p 64 524287
part-add /dev/sda p 524288 -64
-# Disk ID.
-pwrite-device /dev/sda "1234" 0x01b8 | cat >/dev/null
-
# Phony boot loader filesystem.
-mkfs ntfs /dev/sda1
+mkfs vfat /dev/sda1
+
+# Mark this as a BIOS boot partition. UEFI commands below
+# may override this.
+part_set_gpt_type /dev/sda 1 21686148-6449-6E6F-744E-656564454649
# Phony root filesystem.
mkfs ntfs /dev/sda2
@@ -70,6 +100,7 @@ mkfs ntfs /dev/sda2
mount /dev/sda2 /
mkdir-p /Windows/System32/Config
mkdir-p /Windows/System32/Drivers
+mkdir-p /Windows/TEMP
upload $SOFTWARE_REG /Windows/System32/Config/SOFTWARE
upload $SYSTEM_REG /Windows/System32/Config/SYSTEM
@@ -79,6 +110,9 @@ upload $CMD_EXE /Windows/System32/cmd.exe
mkdir "/Program Files"
touch /autoexec.bat
+# If UEFI, put a BCD on here.
+$EFI_COMMANDS
+
EOF
mv $IMAGENAME-t $IMAGENAME
diff --git a/test-data/phony-guests/windows-bcd.reg b/test-data/phony-guests/windows-bcd.reg
new file mode 100644
index 00000000..92b47e64
--- /dev/null
+++ b/test-data/phony-guests/windows-bcd.reg
@@ -0,0 +1,365 @@
+Windows Registry Editor Version 5.00
+
+[\]
+
+[\Description]
+"GuidCache"=hex(3):9e,aa,92,5f,f7,0a,d9,01,08,27,00,00,7c,8c,de,4e,19,0a,0e,e1,e0,00,00,00
+"KeyName"=hex(1):42,00,43,00,44,00,30,00,30,00,30,00,30,00,30,00,30,00,30,00,30,00,00,00
+"System"=dword:00000001
+"TreatAsSystem"=dword:00000001
+
+[\Objects]
+
+[\Objects\{0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}]
+
+[\Objects\{0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}\Description]
+"Type"=dword:20100000
+
+[\Objects\{0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}\Elements]
+
+[\Objects\{0ce4991b-e6b3-4b16-b23c-5e0d9250e5d9}\Elements\16000020]
+"Element"=hex(3):00
+
+[\Objects\{1afa9c49-16ab-4a5c-901b-212802da9460}]
+
+[\Objects\{1afa9c49-16ab-4a5c-901b-212802da9460}\Description]
+"Type"=dword:20200004
+
+[\Objects\{1afa9c49-16ab-4a5c-901b-212802da9460}\Elements]
+
+[\Objects\{1afa9c49-16ab-4a5c-901b-212802da9460}\Elements\14000006]
+"Element"=hex(7):7b,00,37,00,65,00,61,00,32,00,65,00,31,00,61,00,63,00,2d,00,32,00,65,00,36,00,31,00,2d,00,34,00,37,00,32,00,38,00,2d,00,61,00,61,00,61,00,33,00,2d,00,38,00,39,00,36,00,64,00,39,00,64,00,30,00,61,00,39,00,66,00,30,00,65,00,7d,00,00,00,00,00
+
+[\Objects\{4636856e-540f-4170-a130-a84776f4c654}]
+
+[\Objects\{4636856e-540f-4170-a130-a84776f4c654}\Description]
+"Type"=dword:20100000
+
+[\Objects\{4636856e-540f-4170-a130-a84776f4c654}\Elements]
+
+[\Objects\{4636856e-540f-4170-a130-a84776f4c654}\Elements\15000011]
+"Element"=hex(3):04,00,00,00,00,00,00,00
+
+[\Objects\{5189b25c-5558-4bf2-bca4-289b11bd29e2}]
+
+[\Objects\{5189b25c-5558-4bf2-bca4-289b11bd29e2}\Description]
+"Type"=dword:20100000
+
+[\Objects\{5189b25c-5558-4bf2-bca4-289b11bd29e2}\Elements]
+
+[\Objects\{6efb52bf-1766-41db-a6b3-0ee5eff72bd7}]
+
+[\Objects\{6efb52bf-1766-41db-a6b3-0ee5eff72bd7}\Description]
+"Type"=dword:20200003
+
+[\Objects\{6efb52bf-1766-41db-a6b3-0ee5eff72bd7}\Elements]
+
+[\Objects\{6efb52bf-1766-41db-a6b3-0ee5eff72bd7}\Elements\14000006]
+"Element"=hex(7):7b,00,37,00,65,00,61,00,32,00,65,00,31,00,61,00,63,00,2d,00,32,00,65,00,36,00,31,00,2d,00,34,00,37,00,32,00,38,00,2d,00,61,00,61,00,61,00,33,00,2d,00,38,00,39,00,36,00,64,00,39,00,64,00,30,00,61,00,39,00,66,00,30,00,65,00,7d,00,00,00,7b,00,37,00,66,00,66,00,36,00,30,00,37,00,65,00,30,00,2d,00,34,00,33,00,39,00,35,00,2d,00,31,00,31,00,64,00,62,00,2d,00,62,00,30,00,64,00,65,00,2d,00,30,00,38,00,30,00,30,00,32,00,30,00,30,00,63,00,39,00,61,00,36,00,36,00,7d,00,00,00,00,00
+
+[\Objects\{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}]
+
+[\Objects\{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}\Description]
+"Type"=dword:20100000
+
+[\Objects\{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}\Elements]
+
+[\Objects\{7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}\Elements\14000006]
+"Element"=hex(7):7b,00,34,00,36,00,33,00,36,00,38,00,35,00,36,00,65,00,2d,00,35,00,34,00,30,00,66,00,2d,00,34,00,31,00,37,00,30,00,2d,00,61,00,31,00,33,00,30,00,2d,00,61,00,38,00,34,00,37,00,37,00,36,00,66,00,34,00,63,00,36,00,35,00,34,00,7d,00,00,00,7b,00,30,00,63,00,65,00,34,00,39,00,39,00,31,00,62,00,2d,00,65,00,36,00,62,00,33,00,2d,00,34,00,62,00,31,00,36,00,2d,00,62,00,32,00,33,00,63,00,2d,00,35,00,65,00,30,00,64,00,39,00,32,00,35,00,30,00,65,00,35,00,64,00,39,00,7d,00,00,00,7b,00,35,00,31,00,38,00,39,00,62,00,32,00,35,00,63,00,2d,00,35,00,35,00,35,00,38,00,2d,00,34,00,62,00,66,00,32,00,2d,00,62,00,63,00,61,00,34,00,2d,00,32,00,38,00,39,00,62,00,31,00,31,00,62,00,64,00,32,00,39,00,65,00,32,00,7d,00,00,00,00,00
+
+[\Objects\{7ff607e0-4395-11db-b0de-0800200c9a66}]
+
+[\Objects\{7ff607e0-4395-11db-b0de-0800200c9a66}\Description]
+"Type"=dword:20200003
+
+[\Objects\{7ff607e0-4395-11db-b0de-0800200c9a66}\Elements]
+
+[\Objects\{7ff607e0-4395-11db-b0de-0800200c9a66}\Elements\250000f3]
+"Element"=hex(3):00,00,00,00,00,00,00,00
+
+[\Objects\{7ff607e0-4395-11db-b0de-0800200c9a66}\Elements\250000f4]
+"Element"=hex(3):01,00,00,00,00,00,00,00
+
+[\Objects\{7ff607e0-4395-11db-b0de-0800200c9a66}\Elements\250000f5]
+"Element"=hex(3):00,c2,01,00,00,00,00,00
+
+[\Objects\{9dd5438e-76ea-11ed-8c7c-de4e190a0ee1}]
+
+[\Objects\{9dd5438e-76ea-11ed-8c7c-de4e190a0ee1}\Description]
+"FirmwareVariable"=hex(3):01,00,00,00,76,00,00,00,00,00,00,00,01,00,00,00,1c,00,00,00,4c,00,00,00,00,00,00,00,45,00,46,00,49,00,20,00,56,00,69,00,72,00,74,00,75,00,61,00,6c,00,20,00,64,00,69,00,73,00,6b,00,20,00,28,00,30,00,2e,00,30,00,29,00,00,00,00,00,01,00,00,00,2a,00,00,00,04,00,00,00,02,01,0c,00,d0,41,08,0a,08,00,00,00,01,01,06,00,00,00,03,02,08,00,00,00,00,00,7f,ff,04,00
+"Type"=dword:101fffff
+
+[\Objects\{9dd5438e-76ea-11ed-8c7c-de4e190a0ee1}\Elements]
+
+[\Objects\{9dd5438e-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000004]
+"Element"=hex(1):45,00,46,00,49,00,20,00,56,00,69,00,72,00,74,00,75,00,61,00,6c,00,20,00,64,00,69,00,73,00,6b,00,20,00,28,00,30,00,2e,00,30,00,29,00,00,00
+
+[\Objects\{9dd5438f-76ea-11ed-8c7c-de4e190a0ee1}]
+
+[\Objects\{9dd5438f-76ea-11ed-8c7c-de4e190a0ee1}\Description]
+"FirmwareVariable"=hex(3):01,00,00,00,9c,00,00,00,01,00,00,00,01,00,00,00,1c,00,00,00,70,00,00,00,00,00,00,00,45,00,46,00,49,00,20,00,56,00,4d,00,77,00,61,00,72,00,65,00,20,00,56,00,69,00,72,00,74,00,75,00,61,00,6c,00,20,00,53,00,41,00,54,00,41,00,20,00,43,00,44,00,52,00,4f,00,4d,00,20,00,44,00,72,00,69,00,76,00,65,00,20,00,28,00,30,00,2e,00,30,00,29,00,00,00,01,00,00,00,2c,00,00,00,04,00,00,00,02,01,0c,00,d0,41,08,0a,08,00,00,00,01,01,06,00,00,03,03,12,0a,00,00,00,00,00,00,00,7f,ff,04,00
+"Type"=dword:101fffff
+
+[\Objects\{9dd5438f-76ea-11ed-8c7c-de4e190a0ee1}\Elements]
+
+[\Objects\{9dd5438f-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000004]
+"Element"=hex(1):45,00,46,00,49,00,20,00,56,00,4d,00,77,00,61,00,72,00,65,00,20,00,56,00,69,00,72,00,74,00,75,00,61,00,6c,00,20,00,53,00,41,00,54,00,41,00,20,00,43,00,44,00,52,00,4f,00,4d,00,20,00,44,00,72,00,69,00,76,00,65,00,20,00,28,00,30,00,2e,00,30,00,29,00,00,00
+
+[\Objects\{9dd54390-76ea-11ed-8c7c-de4e190a0ee1}]
+
+[\Objects\{9dd54390-76ea-11ed-8c7c-de4e190a0ee1}\Description]
+"FirmwareVariable"=hex(3):01,00,00,00,7b,00,00,00,02,00,00,00,01,00,00,00,1c,00,00,00,34,00,00,00,00,00,00,00,45,00,46,00,49,00,20,00,4e,00,65,00,74,00,77,00,6f,00,72,00,6b,00,00,00,01,00,00,00,47,00,00,00,04,00,00,00,02,01,0c,00,d0,41,08,0a,08,00,00,00,01,01,06,00,00,01,03,0b,25,00,00,50,56,af,ca,05,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,7f,ff,04,00
+"Type"=dword:101fffff
+
+[\Objects\{9dd54390-76ea-11ed-8c7c-de4e190a0ee1}\Elements]
+
+[\Objects\{9dd54390-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000004]
+"Element"=hex(1):45,00,46,00,49,00,20,00,4e,00,65,00,74,00,77,00,6f,00,72,00,6b,00,00,00
+
+[\Objects\{9dd54391-76ea-11ed-8c7c-de4e190a0ee1}]
+
+[\Objects\{9dd54391-76ea-11ed-8c7c-de4e190a0ee1}\Description]
+"FirmwareVariable"=hex(3):01,00,00,00,a8,00,00,00,03,00,00,00,01,00,00,00,1c,00,00,00,6c,00,00,00,00,00,00,00,45,00,46,00,49,00,20,00,49,00,6e,00,74,00,65,00,72,00,6e,00,61,00,6c,00,20,00,53,00,68,00,65,00,6c,00,6c,00,20,00,28,00,55,00,6e,00,73,00,75,00,70,00,70,00,6f,00,72,00,74,00,65,00,64,00,20,00,6f,00,70,00,74,00,69,00,6f,00,6e,00,29,00,00,00,01,00,00,00,3c,00,00,00,04,00,00,00,01,03,18,00,0b,00,00,00,18,00,a7,0e,00,00,00,00,17,e0,07,0f,00,00,00,00,04,06,14,00,b7,d6,7a,c5,15,05,a8,40,9d,21,55,16,52,85,4e,37,7f,ff,04,00
+"Type"=dword:101fffff
+
+[\Objects\{9dd54391-76ea-11ed-8c7c-de4e190a0ee1}\Elements]
+
+[\Objects\{9dd54391-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000004]
+"Element"=hex(1):45,00,46,00,49,00,20,00,49,00,6e,00,74,00,65,00,72,00,6e,00,61,00,6c,00,20,00,53,00,68,00,65,00,6c,00,6c,00,20,00,28,00,55,00,6e,00,73,00,75,00,70,00,70,00,6f,00,72,00,74,00,65,00,64,00,20,00,6f,00,70,00,74,00,69,00,6f,00,6e,00,29,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}]
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Description]
+"Type"=dword:10200004
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements]
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\11000001]
+"Element"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000002]
+"Element"=hex(1):5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,69,00,6e,00,72,00,65,00,73,00,75,00,6d,00,65,00,2e,00,65,00,66,00,69,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000004]
+"Element"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,52,00,65,00,73,00,75,00,6d,00,65,00,20,00,41,00,70,00,70,00,6c,00,69,00,63,00,61,00,74,00,69,00,6f,00,6e,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000005]
+"Element"=hex(1):65,00,6e,00,2d,00,55,00,53,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\14000006]
+"Element"=hex(7):7b,00,31,00,61,00,66,00,61,00,39,00,63,00,34,00,39,00,2d,00,31,00,36,00,61,00,62,00,2d,00,34,00,61,00,35,00,63,00,2d,00,39,00,30,00,31,00,62,00,2d,00,32,00,31,00,32,00,38,00,30,00,32,00,64,00,61,00,39,00,34,00,36,00,30,00,7d,00,00,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\14000008]
+"Element"=hex(7):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,34,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\16000009]
+"Element"=hex(3):01
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\16000060]
+"Element"=hex(3):01
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\17000077]
+"Element"=hex(3):75,00,00,15,00,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\21000001]
+"Element"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\21000026]
+"Element"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\22000002]
+"Element"=hex(1):5c,00,68,00,69,00,62,00,65,00,72,00,66,00,69,00,6c,00,2e,00,73,00,79,00,73,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\25000008]
+"Element"=hex(3):01,00,00,00,00,00,00,00
+
+[\Objects\{9dd54392-76ea-11ed-8c7c-de4e190a0ee1}\Elements\26000006]
+"Element"=hex(3):00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}]
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Description]
+"Type"=dword:10200003
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements]
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\11000001]
+"Element"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000002]
+"Element"=hex(1):5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,69,00,6e,00,6c,00,6f,00,61,00,64,00,2e,00,65,00,66,00,69,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000004]
+"Element"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,31,00,31,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000005]
+"Element"=hex(1):65,00,6e,00,2d,00,55,00,53,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\14000006]
+"Element"=hex(7):7b,00,36,00,65,00,66,00,62,00,35,00,32,00,62,00,66,00,2d,00,31,00,37,00,36,00,36,00,2d,00,34,00,31,00,64,00,62,00,2d,00,61,00,36,00,62,00,33,00,2d,00,30,00,65,00,65,00,35,00,65,00,66,00,66,00,37,00,32,00,62,00,64,00,37,00,7d,00,00,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\14000008]
+"Element"=hex(7):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,34,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\15000066]
+"Element"=hex(3):03,00,00,00,00,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\16000009]
+"Element"=hex(3):01
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\16000060]
+"Element"=hex(3):01
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\17000077]
+"Element"=hex(3):75,00,00,15,00,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\21000001]
+"Element"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,a0,ce,81,15,ee,12,7d,4f,89,67,a2,b7,30,24,aa,e2,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\22000002]
+"Element"=hex(1):5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\23000003]
+"Element"=hex(1):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,32,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\25000020]
+"Element"=hex(3):00,00,00,00,00,00,00,00
+
+[\Objects\{9dd54393-76ea-11ed-8c7c-de4e190a0ee1}\Elements\250000c2]
+"Element"=hex(3):01,00,00,00,00,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}]
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Description]
+"Type"=dword:10200003
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements]
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\11000001]
+"Element"=hex(3):95,43,d5,9d,ea,76,ed,11,8c,7c,de,4e,19,0a,0e,e1,00,00,00,00,01,00,00,00,b8,00,00,00,00,00,00,00,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,90,00,00,00,05,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,91,1d,b9,0e,98,0c,96,45,ac,34,97,75,03,5e,e4,a6,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,5c,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,52,00,45,00,5c,00,57,00,69,00,6e,00,72,00,65,00,2e,00,77,00,69,00,6d,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000002]
+"Element"=hex(1):5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,69,00,6e,00,6c,00,6f,00,61,00,64,00,2e,00,65,00,66,00,69,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000004]
+"Element"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,20,00,45,00,6e,00,76,00,69,00,72,00,6f,00,6e,00,6d,00,65,00,6e,00,74,00,00,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000005]
+"Element"=hex(1):65,00,6e,00,2d,00,75,00,73,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\14000006]
+"Element"=hex(7):7b,00,36,00,65,00,66,00,62,00,35,00,32,00,62,00,66,00,2d,00,31,00,37,00,36,00,36,00,2d,00,34,00,31,00,64,00,62,00,2d,00,61,00,36,00,62,00,33,00,2d,00,30,00,65,00,65,00,35,00,65,00,66,00,66,00,37,00,32,00,62,00,64,00,37,00,7d,00,00,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\15000065]
+"Element"=hex(3):03,00,00,00,00,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\21000001]
+"Element"=hex(3):95,43,d5,9d,ea,76,ed,11,8c,7c,de,4e,19,0a,0e,e1,00,00,00,00,01,00,00,00,b8,00,00,00,00,00,00,00,03,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,90,00,00,00,05,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,91,1d,b9,0e,98,0c,96,45,ac,34,97,75,03,5e,e4,a6,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,5c,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,52,00,45,00,5c,00,57,00,69,00,6e,00,72,00,65,00,2e,00,77,00,69,00,6d,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\22000002]
+"Element"=hex(1):5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,00,00,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\25000020]
+"Element"=hex(3):00,00,00,00,00,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\250000c2]
+"Element"=hex(3):01,00,00,00,00,00,00,00
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\26000022]
+"Element"=hex(3):01
+
+[\Objects\{9dd54394-76ea-11ed-8c7c-de4e190a0ee1}\Elements\46000010]
+"Element"=hex(3):01
+
+[\Objects\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}]
+
+[\Objects\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\Description]
+"Type"=dword:30000000
+
+[\Objects\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\Elements]
+
+[\Objects\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\Elements\12000004]
+"Element"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,00,00,00,00
+
+[\Objects\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\Elements\31000003]
+"Element"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,91,1d,b9,0e,98,0c,96,45,ac,34,97,75,03,5e,e4,a6,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+[\Objects\{9dd54395-76ea-11ed-8c7c-de4e190a0ee1}\Elements\32000004]
+"Element"=hex(1):5c,00,52,00,65,00,63,00,6f,00,76,00,65,00,72,00,79,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,52,00,45,00,5c,00,62,00,6f,00,6f,00,74,00,2e,00,73,00,64,00,69,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}]
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Description]
+"FirmwareVariable"=hex(3):01,00,00,00,50,01,00,00,04,00,00,00,05,00,00,00,a4,00,00,00,d0,00,00,00,88,00,00,00,57,49,4e,44,4f,57,53,00,01,00,00,00,88,00,00,00,78,00,00,00,42,00,43,00,44,00,4f,00,42,00,4a,00,45,00,43,00,54,00,3d,00,7b,00,39,00,64,00,65,00,61,00,38,00,36,00,32,00,63,00,2d,00,35,00,63,00,64,00,64,00,2d,00,34,00,65,00,37,00,30,00,2d,00,61,00,63,00,63,00,31,00,2d,00,66,00,33,00,32,00,62,00,33,00,34,00,34,00,64,00,34,00,37,00,39,00,35,00,7d,00,00,00,33,00,01,00,00,00,10,00,00,00,04,00,00,00,7f,ff,04,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,42,00,6f,00,6f,00,74,00,20,00,4d,00,61,00,6e,00,61,00,67,00,65,00,72,00,00,00,00,00,01,00,00,00,80,00,00,00,04,00,00,00,04,01,2a,00,01,00,00,00,00,08,00,00,00,00,00,00,00,20,03,00,00,00,00,00,33,9a,cc,a9,16,a5,21,4c,88,eb,ee,d5,d2,b6,58,a3,02,02,04,04,46,00,5c,00,45,00,46,00,49,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,42,00,6f,00,6f,00,74,00,5c,00,62,00,6f,00,6f,00,74,00,6d,00,67,00,66,00,77,00,2e,00,65,00,66,00,69,00,00,00,7f,ff,04,00
+"Type"=dword:10100002
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements]
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\11000001]
+"Element"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,33,9a,cc,a9,16,a5,21,4c,88,eb,ee,d5,d2,b6,58,a3,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\12000002]
+"Element"=hex(1):5c,00,45,00,46,00,49,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,42,00,6f,00,6f,00,74,00,5c,00,62,00,6f,00,6f,00,74,00,6d,00,67,00,66,00,77,00,2e,00,65,00,66,00,69,00,00,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\12000004]
+"Element"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,42,00,6f,00,6f,00,74,00,20,00,4d,00,61,00,6e,00,61,00,67,00,65,00,72,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\12000005]
+"Element"=hex(1):65,00,6e,00,2d,00,55,00,53,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\14000006]
+"Element"=hex(7):7b,00,37,00,65,00,61,00,32,00,65,00,31,00,61,00,63,00,2d,00,32,00,65,00,36,00,31,00,2d,00,34,00,37,00,32,00,38,00,2d,00,61,00,61,00,61,00,33,00,2d,00,38,00,39,00,36,00,64,00,39,00,64,00,30,00,61,00,39,00,66,00,30,00,65,00,7d,00,00,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\23000003]
+"Element"=hex(1):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,33,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\23000006]
+"Element"=hex(1):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,32,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\24000001]
+"Element"=hex(7):7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,33,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\24000010]
+"Element"=hex(7):7b,00,62,00,32,00,37,00,32,00,31,00,64,00,37,00,33,00,2d,00,31,00,64,00,62,00,34,00,2d,00,34,00,63,00,36,00,32,00,2d,00,62,00,66,00,37,00,38,00,2d,00,63,00,35,00,34,00,38,00,61,00,38,00,38,00,30,00,31,00,34,00,32,00,64,00,7d,00,00,00,00,00
+
+[\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\25000004]
+"Element"=hex(3):1e,00,00,00,00,00,00,00
+
+[\Objects\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}]
+
+[\Objects\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}\Description]
+"Type"=dword:10100001
+
+[\Objects\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}\Elements]
+
+[\Objects\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}\Elements\24000001]
+"Element"=hex(7):7b,00,39,00,64,00,65,00,61,00,38,00,36,00,32,00,63,00,2d,00,35,00,63,00,64,00,64,00,2d,00,34,00,65,00,37,00,30,00,2d,00,61,00,63,00,63,00,31,00,2d,00,66,00,33,00,32,00,62,00,33,00,34,00,34,00,64,00,34,00,37,00,39,00,35,00,7d,00,00,00,7b,00,39,00,64,00,64,00,35,00,34,00,33,00,38,00,65,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,7b,00,39,00,64,00,64,00,35,00,34,00,33,00,38,00,66,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,30,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,7b,00,39,00,64,00,64,00,35,00,34,00,33,00,39,00,31,00,2d,00,37,00,36,00,65,00,61,00,2d,00,31,00,31,00,65,00,64,00,2d,00,38,00,63,00,37,00,63,00,2d,00,64,00,65,00,34,00,65,00,31,00,39,00,30,00,61,00,30,00,65,00,65,00,31,00,7d,00,00,00,00,00
+
+[\Objects\{a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba}\Elements\25000004]
+"Element"=hex(3):02,00,00,00,00,00,00,00
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}]
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Description]
+"Type"=dword:10200005
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Elements]
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Elements\11000001]
+"Element"=hex(3):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,06,00,00,00,00,00,00,00,48,00,00,00,00,00,00,00,33,9a,cc,a9,16,a5,21,4c,88,eb,ee,d5,d2,b6,58,a3,00,00,00,00,00,00,00,00,43,0d,dc,ad,a9,17,26,4e,a1,6c,dc,71,e6,73,93,f7,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Elements\12000002]
+"Element"=hex(1):5c,00,45,00,46,00,49,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,42,00,6f,00,6f,00,74,00,5c,00,6d,00,65,00,6d,00,74,00,65,00,73,00,74,00,2e,00,65,00,66,00,69,00,00,00
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Elements\12000004]
+"Element"=hex(1):57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,4d,00,65,00,6d,00,6f,00,72,00,79,00,20,00,44,00,69,00,61,00,67,00,6e,00,6f,00,73,00,74,00,69,00,63,00,00,00
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Elements\12000005]
+"Element"=hex(1):65,00,6e,00,2d,00,55,00,53,00,00,00
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Elements\14000006]
+"Element"=hex(7):7b,00,37,00,65,00,61,00,32,00,65,00,31,00,61,00,63,00,2d,00,32,00,65,00,36,00,31,00,2d,00,34,00,37,00,32,00,38,00,2d,00,61,00,61,00,61,00,33,00,2d,00,38,00,39,00,36,00,64,00,39,00,64,00,30,00,61,00,39,00,66,00,30,00,65,00,7d,00,00,00,00,00
+
+[\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Elements\1600000b]
+"Element"=hex(3):01
+

View File

@ -1,4 +1,4 @@
From d9a2246094ba73ff4e04e182f84da53c168d4f0f Mon Sep 17 00:00:00 2001
From 5b29ce6469ca66c2ed793f7b14edba7942564026 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 2 Mar 2017 14:21:37 +0100
Subject: [PATCH] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671)

View File

@ -1,68 +0,0 @@
From 277ddd1a9b84d9c1b1fa93ef9a2e7f52b68d7930 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 28 Oct 2025 11:34:22 +0000
Subject: [PATCH] convert: windows: Fix ESP conversion if C:\Windows\Temp has
alternate case
We found a Windows guest which had the expected C:\Windows\Temp path,
but the actual name was TEMP rather than Temp. It's unclear if this
had been renamed, or if Windows can create this normally. In any
case, the unexpected casing caused this failure:
virt-v2v: error: libguestfs error: mkdtemp: /Windows/Temp/ESP_XXXXXX: No such file or directory
We have to use g#case_sensitive_path here since the directory is on
NTFS.
I also removed the hard-coded "\Windows" in favour of %systemroot%,
and fixed the indentation.
Fixes: https://issues.redhat.com/browse/RHEL-124569
Reported-by: Ulhas Surse
---
convert/convert_windows.ml | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml
index 207d68f7..03c886f0 100644
--- a/convert/convert_windows.ml
+++ b/convert/convert_windows.ml
@@ -966,21 +966,25 @@ if errorlevel 3010 exit /b 0
match i_firmware with
| Firmware.I_BIOS -> ()
| I_UEFI esp_list ->
- let esp_temp_path = g#mkdtemp "/Windows/Temp/ESP_XXXXXX" in
- let uefi_arch = get_uefi_arch_suffix inspect.i_arch in
+ let esp_temp_path =
+ let temp = inspect.i_windows_systemroot ^ "/Temp" in
+ let mp = g#case_sensitive_path temp in
+ let template = mp ^ "/ESP_XXXXXX" in
+ g#mkdtemp template in
+ let uefi_arch = get_uefi_arch_suffix inspect.i_arch in
- List.iter (
- fun dev_path ->
- g#mount dev_path esp_temp_path;
- fix_win_uefi_bcd esp_temp_path;
- (match uefi_arch with
- | Some uefi_arch -> fix_win_uefi_fallback esp_temp_path uefi_arch
- | None -> ()
- );
- g#umount esp_temp_path;
- ) esp_list;
+ List.iter (
+ fun dev_path ->
+ g#mount dev_path esp_temp_path;
+ fix_win_uefi_bcd esp_temp_path;
+ (match uefi_arch with
+ | Some uefi_arch -> fix_win_uefi_fallback esp_temp_path uefi_arch
+ | None -> ()
+ );
+ g#umount esp_temp_path;
+ ) esp_list;
- g#rmdir esp_temp_path
+ g#rmdir esp_temp_path
in
do_convert ()

View File

@ -1,4 +1,4 @@
From ff5af0f6426cd11c6afdabe32adb343615e83bd2 Mon Sep 17 00:00:00 2001
From 4536ac70a854ff76d730d1e4256d9182119960bd Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Tue, 26 Mar 2019 09:42:25 +0100
Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests

View File

@ -1,84 +0,0 @@
From 79eb7fb939fe6a9121f43b71875625d9b3d546b2 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 28 Oct 2025 10:20:48 +0000
Subject: [PATCH] tests: Add a test of Windows UEFI conversion
---
tests/Makefile.am | 2 ++
tests/test-windows-uefi-conversion.sh | 49 +++++++++++++++++++++++++++
2 files changed, 51 insertions(+)
create mode 100755 tests/test-windows-uefi-conversion.sh
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 26e41cc5..54cfd124 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -119,6 +119,7 @@ TESTS = \
test-sound.sh \
test-virtio-win-iso.sh \
test-windows-conversion.sh \
+ test-windows-uefi-conversion.sh \
$(phony_windows_scripts) \
$(SLOW_TESTS) \
$(ROOT_TESTS)
@@ -333,4 +334,5 @@ EXTRA_DIST += \
test-virtio-win-iso.sh \
test-windows-conversion.sh \
test-windows-conversion-ls.txt \
+ test-windows-uefi-conversion.sh \
test-windows-phony.sh
diff --git a/tests/test-windows-uefi-conversion.sh b/tests/test-windows-uefi-conversion.sh
new file mode 100755
index 00000000..ec8f7218
--- /dev/null
+++ b/tests/test-windows-uefi-conversion.sh
@@ -0,0 +1,49 @@
+#!/bin/bash -
+# libguestfs virt-v2v test script
+# Copyright (C) 2014-2025 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# Test virt-v2v (Phony) Windows conversion with UEFI.
+
+source ./functions.sh
+set -e
+set -x
+
+skip_if_skipped
+f=../test-data/phony-guests/win2k22-uefi.img
+requires test -s $f
+
+export VIRT_TOOLS_DATA_DIR="$srcdir/../test-data/fake-virt-tools"
+export VIRTIO_WIN="$srcdir/../test-data/fake-virtio-win/drivers"
+
+d=test-windows-conversion-uefi.d
+rm -rf $d
+cleanup_fn rm -r $d
+mkdir $d
+
+$VG virt-v2v --debug-gc -vx \
+ -i disk $f \
+ -o local -os $d
+
+# Test the libvirt XML metadata and a disk was created.
+xml=$d/win2k22-uefi.xml
+test -f $xml
+test -f $d/win2k22-uefi-sda
+
+cat $xml
+
+# Check that it's really UEFI.
+grep 'firmware.*efi' $xml

View File

@ -1,4 +1,4 @@
From d912ca753f83b526657a3ce76535d48caa1cf85b Mon Sep 17 00:00:00 2001
From 945f36b5e0c74a11bc0c92987f65984ad39d5e36 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Jul 2022 11:58:09 +0100
Subject: [PATCH] RHEL: tests: Remove btrfs test

View File

@ -1,28 +0,0 @@
From 9142adb017be27f2f5af5cbc6cf61d3bb6437acc Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 30 Oct 2025 17:38:08 +0000
Subject: [PATCH] docs: Remove left over internal link to resource requirements
section
This link was broken, but also points (if it was fixed) to the head of
the current section so it's not useful. Remove the sentence entirely.
Fixes: commit a8da179db521a8b677fd7977b5a844d3af65ffba
---
docs/virt-v2v.pod | 3 ---
1 file changed, 3 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index d530d54b..e459ae1b 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -1068,9 +1068,6 @@ conversion at all unless at least 1GB is available there. You can
change the directory that virt-v2v uses by setting
C<$VIRT_V2V_TMPDIR>.
-See also L</Resource requirements> above and L</ENVIRONMENT VARIABLES>
-below.
-
=head2 Running virt-v2v as root or non-root
Nothing in virt-v2v inherently needs root access, and it will run just

View File

@ -1,4 +1,4 @@
From 35465901ea8b140550b8a6d2cdc0f8920151da61 Mon Sep 17 00:00:00 2001
From 801cc4e5858bf4c7c0655de64053b8264f207a71 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

View File

@ -1,110 +0,0 @@
From b2195e0715af90f572135295e65da22f9f18d0c7 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 30 Oct 2025 17:47:16 +0000
Subject: [PATCH] docs: Put all headings at level 2 inside NOTES section
We were not consistent in our headings inside this section, with some
operating system notes using:
=head2 RHEL 4: SELinux relabel appears to hang forever
and others using:
=head2 Windows
=head3 System disk on a Dynamic Disk is not supported
Put all the headings at level 2 (except one which is really nested).
---
docs/virt-v2v.pod | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index e459ae1b..cba578c2 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -1374,9 +1374,7 @@ You can use the L<chattr(1)> command before converting the guest:
and then restore it (I<+i>) after conversion.
-=head2 Debian and Ubuntu
-
-=head3 "warning: could not determine a way to update the configuration of Grub2"
+=head2 Debian/Ubuntu: "warning: could not determine a way to update the configuration of Grub2"
Currently, virt-v2v has no way to set the default kernel in Debian
and Ubuntu guests using GRUB 2 as bootloader. This means that
@@ -1386,7 +1384,7 @@ A recommended procedure is, before using virt-v2v, to check that the
boot kernel is the best kernel available in the guest (for example
by making sure the guest is up-to-date).
-=head3 "vsyscall attempted with vsyscall=none"
+=head2 Debian: "vsyscall attempted with vsyscall=none"
When run on a recent Debian host virt-v2v may fail to convert guests
which were created before 2013. In the debugging output you will see
@@ -1405,9 +1403,7 @@ running virt-v2v:
For more information, see L<https://bugzilla.redhat.com/1592061>
-=head2 Windows
-
-=head3 System disk on a Dynamic Disk is not supported
+=head2 Windows: System disk on a Dynamic Disk is not supported
If the Windows system disk (the drive containing C<\windows>) is
located on a Dynamic Disk then it cannot be converted. Data disks —
@@ -1416,7 +1412,7 @@ the Windows operating system — may be Dynamic Disks.
See L<https://bugzilla.redhat.com/2140548>.
-=head3 Windows E<ge> 8 Fast Startup is incompatible with virt-v2v
+=head2 Windows E<ge> 8 Fast Startup is incompatible with virt-v2v
Guests which use the Windows E<ge> 8 "Fast Startup" feature (or guests
which are hibernated) cannot be converted with virt-v2v. You will see
@@ -1436,7 +1432,7 @@ able to convert it.
For more information, see:
L<guestfs(3)/WINDOWS HIBERNATION AND WINDOWS 8 FAST STARTUP>.
-=head3 Boot failure: 0x0000007B
+=head2 Windows: Boot failure: 0x0000007B
This boot failure is caused by Windows being unable to find or load
the right disk driver (eg. F<viostor.sys>). If you experience this
@@ -1490,7 +1486,7 @@ loaded.
=back
-=head3 OpenStack and Windows reactivation
+=head2 OpenStack and Windows reactivation
OpenStack does not offer stable device / PCI addresses to guests.
Every time it creates or starts a guest, it regenerates the libvirt
@@ -1518,7 +1514,7 @@ This can also prevent booting with a 7B error [see previous section]
if the guest has group policy containing
C<Device Installation Restrictions>.
-=head3 Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2
+=head2 Support for SHA-2 certificates in Windows 7 and Windows Server 2008 R2
Later versions of the Windows virtio drivers are signed using SHA-2
certificates (instead of SHA-1). The original shipping Windows 7 and
@@ -1532,7 +1528,7 @@ before converting the guest.
For further information see:
L<https://bugzilla.redhat.com/show_bug.cgi?id=1624878>
-=head3 After conversion, Windows guest cannot be upgraded
+=head2 After conversion, Windows guest cannot be upgraded
After successful conversion, the Windows guest cannot be upgraded to a
later release of Windows (eg. from Windows Server 2016 to 2019).
@@ -1568,7 +1564,7 @@ entries.
For further information see:
L<https://issues.redhat.com/browse/MTV-2256>
-=head3 "Activation of partially decrypted BITLK device is not supported"
+=head2 Windows: "Activation of partially decrypted BITLK device is not supported"
This error from L<cryptsetup(8)> may occur for Windows 11 guests that
have a virtual TPM. Even if Bitlocker is not activated, the disk is

View File

@ -1,59 +0,0 @@
From 9bb2e7d4705811f0e227103c14757895e5f591d9 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 30 Oct 2025 17:48:39 +0000
Subject: [PATCH] docs: Add more description for --memsize option
The adjustable --memsize option, which increases the amount of memory
available in the appliance, is necessary to work around at least one
unfixable setfiles / glibc bug. Document in more detail what this
option does in a new section, and mention this issue. (As the issue
can't be fixed properly, this is a documentation-only fix).
Fixes: https://issues.redhat.com/browse/RHEL-125116
---
docs/virt-v2v.pod | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index cba578c2..3d5fcba8 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -447,6 +447,8 @@ Change the amount of memory allocated when doing the conversion.
Virt-v2v will usually choose a suitable default. Increase this if you
see that the conversion step is running out of memory.
+See also L</Adjusting memory available for conversion>.
+
=item B<-n> in:out
=item B<-n> out
@@ -987,11 +989,27 @@ alleviate this.
=head2 Compute power and RAM
+Virt-v2v can be run in a virtual machine, but may run faster on bare
+metal.
+
Virt-v2v is not especially compute or RAM intensive. If you are
running many parallel conversions, then you may consider allocating
-one CPU core and 2 GB of RAM per running instance.
+one CPU core and 2 GB of RAM per running instance. (You may adjust
+the amount of memory used by conversion, see the next heading.)
-Virt-v2v can be run in a virtual machine.
+=head2 Adjusting memory available for conversion
+
+Virt-v2v I<--memsize=N> can be used to increase the amount of memory
+available to do conversion. This rarely needs to be adjusted, but can
+help to workaround some conversion problems.
+
+=head3 Linux: setfiles runs out of memory when relabelling
+
+For Linux guests that use SELinux, setfiles can run out of memory if a
+single directory contains millions of files. As there is no simple
+way for virt-v2v to detect this problem in advance, you may have to
+use I<--memsize=4000> (or larger) to convert such guests. For details
+see L<https://issues.redhat.com/browse/RHEL-125116>
=head2 Trimming

View File

@ -1,2 +1,2 @@
SHA512 (virt-v2v-2.9.9.tar.gz) = 82a73de492bc3565ad09cd9981d63459482872b4d3ebf376a15d8681698ae4caeb181ca4a84e0cd68b852b886346009f5350a268761f7ca7db9ac589af92938c
SHA512 (virt-v2v-2.9.9.tar.gz.sig) = dbd8b9702baa1b69f69c3aff52d95e6c2a0a1ef8f066248f3e33990ffefe429409b80001041389692dd24faf8628557d79173cc098e3fce1c5890feb27229bc5
SHA512 (virt-v2v-2.9.10.tar.gz) = 950b5320413de5b398785ce98645833a770acd68ad289c86a6ea2dbe019a40c4642063cba0f6d4e7988d4521b045feb83dd7551f0ebfdba6d964757473cafcb3
SHA512 (virt-v2v-2.9.10.tar.gz.sig) = 467a105c9469ca67c3254155682a87021610a057bc8124e1644d522bf540a944234a7118751a4f1c1308ec5bbd91904445a0223443607426f7decae2dd40c65f

View File

@ -44,8 +44,8 @@ ExclusiveArch: x86_64
Name: virt-v2v
Epoch: 1
Version: 2.9.9
Release: 4%{?dist}
Version: 2.9.10
Release: 1%{?dist}
Summary: Convert a virtual machine to run on KVM
License: GPL-2.0-or-later AND LGPL-2.0-or-later
@ -65,23 +65,14 @@ Source3: copy-patches.sh
# https://github.com/libguestfs/virt-v2v/commits/rhel-10.2
# Patches.
Patch0001: 0001-convert-windows-Warn-about-Trend-Micro-anti-virus.patch
Patch0002: 0002-input-input_vddk.ml-Pass-only-longest-prefix-to-vddk.patch
Patch0003: 0003-test-data-phony-guests-make-windows-img.sh-Minor-twe.patch
Patch0004: 0004-test-data-phony-guests-Create-one-Windows-UEFI-image.patch
Patch0005: 0005-convert-windows-Fix-ESP-conversion-if-C-Windows-Temp.patch
Patch0006: 0006-tests-Add-a-test-of-Windows-UEFI-conversion.patch
Patch0007: 0007-docs-Remove-left-over-internal-link-to-resource-requ.patch
Patch0008: 0008-docs-Put-all-headings-at-level-2-inside-NOTES-sectio.patch
Patch0009: 0009-docs-Add-more-description-for-memsize-option.patch
Patch0010: 0010-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0011: 0011-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0012: 0012-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0013: 0013-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0014: 0014-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0015: 0015-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0016: 0016-RHEL-tests-Remove-btrfs-test.patch
Patch0017: 0017-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
Patch0001: 0001-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0002: 0002-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0003: 0003-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0004: 0004-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0005: 0005-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0006: 0006-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0007: 0007-RHEL-tests-Remove-btrfs-test.patch
Patch0008: 0008-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
BuildRequires: autoconf, automake, libtool
BuildRequires: make
@ -92,10 +83,10 @@ BuildRequires: perl(IPC::Run3)
BuildRequires: gcc
BuildRequires: ocaml >= 4.08
BuildRequires: libguestfs-devel >= 1:1.57.3-1.el10
BuildRequires: libguestfs-devel >= 1:1.57.6-1
BuildRequires: augeas-devel
BuildRequires: bash-completion
%if !0%{?rhel}
%if 0%{?fedora} || 0%{?rhel} >= 11
BuildRequires: bash-completion-devel
%endif
BuildRequires: file
@ -125,9 +116,7 @@ BuildRequires: glibc-utils
BuildRequires: %{_bindir}/qemu-nbd
BuildRequires: %{_bindir}/nbdcopy
BuildRequires: %{_bindir}/nbdinfo
# Should be this, but not yet in buildroot:
#BuildRequires: nbdkit-server >= 1.45.11
BuildRequires: nbdkit-server >= 1.44
BuildRequires: nbdkit-server >= 1.45.11
BuildRequires: nbdkit-file-plugin
BuildRequires: nbdkit-null-plugin
BuildRequires: nbdkit-cow-filter
@ -136,15 +125,12 @@ BuildRequires: mingw-srvany-redistributable >= 1.1-6
BuildRequires: glibc-static
%endif
# Temporary, remove when libguestfs 1.57.5 is available in RHEL 10.2
BuildRequires: passt
%if 0%{verify_tarball_signature}
BuildRequires: gnupg2
%endif
Requires: libguestfs%{?_isa} >= 1:1.57.5-1.el10
Requires: guestfs-tools >= 1.49.7-1
Requires: libguestfs%{?_isa} >= 1:1.57.6-1
Requires: guestfs-tools >= 1.54
# XFS is the default filesystem in Fedora and RHEL.
Requires: libguestfs-xfs
@ -391,9 +377,10 @@ done
%changelog
* Fri Oct 31 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.9.9-4
- Rebase to virt-v2v 2.9.9
* Wed Nov 05 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.9.10-1
- Rebase to virt-v2v 2.9.10
resolves: RHEL-111241
- Synchronize spec file with Fedora.
- Tighten permissions on windows C:\Program Files\Guestfs
resolves: RHEL-104352
- Don't output floppy XML with qemu lacks support
@ -414,6 +401,8 @@ done
resolves: RHEL-124569
- setfiles runs out of memory in glibc fts_read (doc fix)
resolves: RHEL-125116
- Use AV and GPO information from inspection instead of open coding
resolves: RHEL-125956
* Thu Aug 21 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.8.1-9
- Rebase to virt-v2v 2.8.1