-
Notifications
You must be signed in to change notification settings - Fork 29
Description
What steps did you take and what happened?
100% of VM's migrated in our environment (50 VM's) have experienced the below issue.
Running Get-WindowsDriver -Online or pnputil /enum-drivers post migration will result in an incorrect parameter error due to the drvier store corruption.
Component: VJailbreak / virt-v2v integration
Severity: Medium
Environment:
- VJailbreak version: 0.36 / 0.37
- virt-v2v version: [please fill in - check with
virt-v2v --version] - Source: VMware vSphere 8
-
- Target: OpenStack / KVM
- Affected Guest OS: 2019 / 2022 / 2025
Summary
Windows VMs migrated using VJailbreak experience driver store corruption due to incomplete cleanup of (guestor.inf) driver packages, leaving orphaned _tmp entries in the Windows registry.
Description
After migrating Windows VMs from VMware to KVM/OpenStack using VJailbreak, the Windows driver store becomes corrupted with orphaned temporary entries at:
HKLM\SYSTEM\DriverDatabase\DriverPackages\guestor.inf_tmp
Apprently the The guestor.inf refers to the legacy oVirt/RHEV Guest Agent driver? The _tmp suffix indicates the driver package installation or removal was interrupted mid-operation during the virt-v2v conversion process.
This corruption can cause:
- Driver installation failures for other devices
- Windows Update / Uissues
- Device Manager errors
- Potential boot problems in some cases
Steps to Reproduce
- Prepare a Windows VM running on VMware vSphere
- Migrate the VM using VJailbreak to an OpenStack-compliant target
- Boot the converted VM
- Open Registry Editor and navigate to
HKLM\SYSTEM\DriverDatabase\DriverPackages\ - Observe orphaned
guestor.inf_tmpentries
Expected Behavior
- The migration should either:
- Complete the driver staging/unstaging process cleanly, OR
- Clean up any
_tmpentries as part of post-migration firstboot scripts
- No orphaned driver package entries should remain in the driver store
Actual Behavior
guestor.inf_tmpentries are left in the driver database registry- Manual registry cleanup is required to restore driver store integrity
Workaround
Manually delete the corrupted registry keys:
HKLM\SYSTEM\DriverDatabase\DriverPackages\guestor.inf_tmp
And/or run the remove-guestor.reg cleanup script from the virt-v2v repository:
https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-guestor.reg
Suggested Fix
-
Update virt-v2v version: [cite:623646481:1697431717]virt-v2v 2.4+ now invokes pnputil (if available) to install drivers, fixing some Windows conversions. Additionally, [cite:1879552000:221579421]a bug was fixed where "Installing drivers on firstboot sometimes fail with PnP service not available" in virt-v2v 2.10.
-
Add post-migration cleanup: Include automatic cleanup of:
- Legacy
guestor.infrelated registry entries (usingremove-guestor.reg) - Any orphaned
*_tmpentries inHKLM\SYSTEM\DriverDatabase\DriverPackages\
- Legacy
-
Improve firstboot script resilience: Ensure driver staging operations complete fully or roll back cleanly if interrupted.
Related References
- virt-v2v remove-guestor.reg: https://github.com/libguestfs/virt-v2v/blob/master/contrib/remove-guestor.reg
- virt-v2v 2.4 release notes (pnputil fix): https://libguestfs.org/virt-v2v-release-notes-2.4.1.html
- virt-v2v 2.10 release notes (firstboot PnP fix): http://www.mail-archive.com/[email protected]/msg00837.html
Additional Information
Also tested on a VM without GPO and AV and encountered the same issue.
What did you expect to happen?
The driver store to not get corrupted.
Environment
0.37 and 0.36
vCenter version
8u3
Anything else you would like to add?
No response