Bug 1442036

Summary: When using q35, virt-v2v adds unsupported ide device for CD-ROM
Product: Red Hat Enterprise Linux 7 Reporter: Richard W.M. Jones <rjones>
Component: libguestfsAssignee: Richard W.M. Jones <rjones>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: ptoscano, tzheng
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: V2V
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-07-24 09:07:11 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:
Attachments:
Description Flags
XML file none

Description Richard W.M. Jones 2017-04-13 11:43:28 UTC
Description of problem:

When converting a guest which uses UEFI + secure boot, virt-v2v
uses machine='q35'.  If the guest also has CD-ROMs, then virt-v2v
also adds an IDE disk.  The guest will fail to start under libvirt
with the error:

  error: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type

In the libvirt XML that is generated by virt-v2v you will see:

    <type arch='x86_64' machine='q35'>hvm</type>
...

    <disk device='cdrom' type='file'>
      <driver name='qemu' type='raw'/>
      <target dev='hdb' bus='ide'/>
    </disk>

Version-Release number of selected component (if applicable):

I'm actually testing this with upstream virt-v2v (1.37.10), but the code
is the same as virt-v2v in RHEL 7.4.

How reproducible:

100%

Steps to Reproduce:

1. Create a UEFI guest with an IDE CD-ROM drive.
2. Change (if necessary) the <loader> path
   from OVMF_CODE.fd to OVMF_CODE.secboot.fd
3. Convert the guest using virt-v2v, eg:
   virt-v2v -i libvirt test -o libvirt -on test2
4. virsh start test2

Actual results:

Fails with:
  error: unsupported configuration: IDE controllers are unsupported for this QEMU binary or machine type

Expected results:

Should be able to boot.

Additional info:

Comment 2 Richard W.M. Jones 2017-04-13 11:45:00 UTC
Created attachment 1271414 [details]
XML file

Comment 3 Richard W.M. Jones 2017-04-13 11:48:43 UTC
The libvirt XML should be modified to:

    <disk device='cdrom' type='file'>
      <driver name='qemu' type='raw'/>
-     <target dev='hdb' bus='ide'/>
+     <target dev='sdb' bus='sata'/>
    </disk>

This is difficult to fix at the moment.  We don't know if we're going
to be using q35 until we're creating the libvirt XML in the output
method, long after the conversion has actually happened.

Because the device needs to be renamed, we will have to modify the
conversion process (eg. changing /etc/fstab).

Comment 4 Richard W.M. Jones 2017-04-13 11:56:02 UTC
(In reply to Richard W.M. Jones from comment #3)
> Because the device needs to be renamed, we will have to modify the
> conversion process (eg. changing /etc/fstab).

Actually this statement isn't true.  In any recent Linux guest the
device should still be /dev/sdX or /dev/srX.

Comment 5 tingting zheng 2017-07-24 09:07:11 UTC
Closed the bug as duplicate of bug 1369010,if you think they are different pls feel free to open it,thanks.

*** This bug has been marked as a duplicate of bug 1369010 ***