Skip to content

Driver Store Corruption from guestor.inf_tmp During Windows VM Migration #1385

@keithstratford

Description

@keithstratford

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

  1. Prepare a Windows VM running on VMware vSphere
  2. Migrate the VM using VJailbreak to an OpenStack-compliant target
  3. Boot the converted VM
  4. Open Registry Editor and navigate to HKLM\SYSTEM\DriverDatabase\DriverPackages\
  5. Observe orphaned guestor.inf_tmp entries

Expected Behavior

  • The migration should either:
    • Complete the driver staging/unstaging process cleanly, OR
    • Clean up any _tmp entries as part of post-migration firstboot scripts
  • No orphaned driver package entries should remain in the driver store

Actual Behavior

  • guestor.inf_tmp entries 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

  1. 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.

  2. Add post-migration cleanup: Include automatic cleanup of:

    • Legacy guestor.inf related registry entries (using remove-guestor.reg)
    • Any orphaned *_tmp entries in HKLM\SYSTEM\DriverDatabase\DriverPackages\
  3. Improve firstboot script resilience: Ensure driver staging operations complete fully or roll back cleanly if interrupted.


Related References


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

Metadata

Metadata

Assignees

Labels

user affectedHit in user environment or user is blocked

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions