We never use SCSI after conversion as we always use either VirtIO or IDE. As an unsupported SCSI controller can prevent a converted guest from starting, it's safer to just remove SCSI controllers. Fixes RHBZ#637775 --- lib/Sys/VirtV2V/Target/LibVirt.pm | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-) diff --git a/lib/Sys/VirtV2V/Target/LibVirt.pm b/lib/Sys/VirtV2V/Target/LibVirt.pm index 279e93d..95ffad4 100644 --- a/lib/Sys/VirtV2V/Target/LibVirt.pm +++ b/lib/Sys/VirtV2V/Target/LibVirt.pm @@ -330,11 +330,27 @@ sub create_guest my $vmm = $self->{vmm}; + _unconfigure_incompatible_devices($dom); _configure_capabilities($vmm, $dom, $guestcaps); $vmm->define_domain($dom->toString()); } +sub _unconfigure_incompatible_devices +{ + my ($dom) = @_; + + foreach my $path ( + # We have replaced the SCSI controller with either VirtIO or IDE. + # Additionally, attempting to start a guest converted from ESX, which + # has an lsilogic SCSI controller, will fail on RHEL 5. + $dom->findnodes("/domain/devices/controller[\@type='scsi']") + ) + { + $path->getParentNode()->removeChild($path); + } +} + # Configure guest according to target hypervisor's capabilities sub _configure_capabilities { -- 1.7.2.3