Bug 1238053
Summary: | v2v:Duplicate disk target set when convert guest with cdrom attached | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | tingting zheng <tzheng> | ||||
Component: | libguestfs | Assignee: | Richard W.M. Jones <rjones> | ||||
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 7.2 | CC: | juzhou, mzhan, ptoscano, sherold, xiaodwan, ydu | ||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Whiteboard: | V2V | ||||||
Fixed In Version: | libguestfs-1.32.0-2.el7 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2016-11-03 17:54:06 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | 1218766 | ||||||
Bug Blocks: | 1288337 | ||||||
Attachments: |
|
Patch series posted upstream: https://www.redhat.com/archives/libguestfs/2015-July/thread.html#00025 This is too invasive for RHEL 7.2. I've removed the Regression keyword, as virt-v2v in RHEL 7.1 has never worked properly, so I doubt this is a real regression. Fixed upstream in: https://github.com/libguestfs/libguestfs/commit/625eae504dfe44381e9e1041c9f9846e0f5aeeb7 https://github.com/libguestfs/libguestfs/commit/a54fef132a66a56c7287b7bc8876438d84c8ed84 https://github.com/libguestfs/libguestfs/commit/c8a9e4b92871b8c37ef031778e5de3f4190d5e62 https://github.com/libguestfs/libguestfs/commit/36e22d1e8ec7a82b12624539d43467de759838e7 https://github.com/libguestfs/libguestfs/commit/4ef80f28c819605f415a71a2337ae90b9b7888bc https://github.com/libguestfs/libguestfs/commit/847c303a159d9066cd0d96ae90bb30e88d2ed781 https://github.com/libguestfs/libguestfs/commit/ce83f2751bea272b96107482aeb37af2358214dc https://github.com/libguestfs/libguestfs/commit/309e14189fa1c470977f3a4bccc5456b390d4cce https://github.com/libguestfs/libguestfs/commit/b7166e1a9e092b5c2e16ce42a6ee025283d6b520 I can reproduce it with(Do not install virtio-win package on your host ) libvirt-1.2.16-1.el7.x86_64 libguestfs-winsupport-7.2-1.el7.x86_64 virt-v2v-1.28.1-1.35.el7.x86_64 Reproduce steps: 1,Prepare a guest with cdrom attached #virsh -c vpx://root.145.47/data/10.66.144.40/?no_verify=1 dumpxml esx6.0-win2008r2-x86_64 … <devices> <disk type='file' device='disk'> <source file='[ESX6.0] esx6.0-win2008r2-x86_64/esx6.0-win2008r2-x86_64.vmdk'/> <target dev='sda' bus='scsi'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <source file='[win-iso] Windows_Server_2008_R2_GA_EN.iso'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> … 2,Convert it using virt-v2v #virt-v2v -ic vpx://root.145.47/data/10.66.144.40/?no_verify=1 -of raw -os default -b virbr0 esx6.0-win2008r2-x86_64 --password-file /tmp/passwd -on cdrom6 3,Check it’s xml and boot it using virsh start after converted #virsh dumpxml cdrom6 | grep disk -A7 <disk type='volume' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source pool='default' volume='cdrom6-sda'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hda' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> #virsh start cdrom6 error: Failed to start domain cdrom6 error: XML error: target 'hda' duplicated for disk sources '<null>' and '/var/lib/libvirt/images/cdrom6-sda' Test it with: Libvirt-1.3.3-2.el7.x86_64 Libguestfs-1.32.3-1.el7.x86_64 Virt-v2v-1.32.3-1.el7.x86_64 Same steps as reproduce After converted: Scenarios 1: with virtio-win package installed 1,Check the xml file #virsh dumpxml cdrom | grep -i disk -A8 <disk type='volume' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source pool='default' volume='cdrom-sda'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hda' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> #virsh start cdrom It’s can be start normally Scenarios 2: without virtio-win package install After convert it #virsh dumpxml cdrom7 | grep disk -A6 <disk type='volume' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source pool='default' volume='cdrom7-sda'/> <backingStore/> <target dev='hda' bus='ide'/> <alias name='ide0-0-0'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <backingStore/> <target dev='hdb' bus='ide'/> <readonly/> <alias name='ide0-0-1'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> #virsh start cdrom7 Domain cdrom7 started As above comments ,the bug has already been fixed .Move it to VERIFIED Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2016-2576.html |
Created attachment 1044894 [details] Debug info for conversion of guest with cdrom attached. Description of problem: When use virt-v2v to convert guest with cdrom attached,after conversion,the disk target is duplicate for boot disk and cdrom,thus guest fails to boot. Version-Release number of selected component (if applicable): libguestfs-1.28.1-1.40.el7.x86_64 libvirt-1.2.16-1.el7.x86_64 virt-v2v-1.28.1-1.40.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.Prepare a guest with cdrom attached. # virsh dumpxml esx6.0-win2008r2-x86_64 <disk type='file' device='disk'> <source file='[esx6.0] esx6.0-win2008r2-x86_64/esx6.0-win2008r2-x86_64.vmdk'/> <target dev='sda' bus='scsi'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <source file='[win-iso] en_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617601.iso'/> <target dev='hdc' bus='ide'/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> 2.Use virt-v2v to convert the above guest. # virt-v2v -ic vpx://root.72.112/data/10.66.72.49/?no_verify=1 -os default -b virbr0 --password-file /tmp/passwd2 esx6.0-win2008r2-x86_64 -v -x | tee /tmp/esx6.0-win2008r2-x86_64.log 3.After conversion,try to boot the guest: # virsh start esx6.0-win2008r2-x86_64 error: Failed to start domain esx6.0-win2008r2-x86_64 error: XML error: target 'hda' duplicated for disk sources '<null>' and '/var/lib/libvirt/images/esx6.0-win2008r2-x86_64-sda' 4.Check guest xml:the target and address is the same for boot disk and cdrom disk. # virsh dumpxml esx6.0-win2008r2-x86_64 <disk type='volume' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source pool='default' volume='esx6.0-win2008r2-x86_64-sda'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <target dev='hda' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> Actual results: As description. Expected results: Different target and disk address set for boot disk and cdrom. Additional info: Attached the debug info.