Bug 1429506

Summary: RFE: OVMF should be detected on conversion server to prevent failed conversion
Product: Red Hat Enterprise Linux 7 Reporter: Christopher Brown <chris.brown>
Component: libguestfsAssignee: Pino Toscano <ptoscano>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: unspecified    
Version: 7.3CC: chayang, chris.brown, jinzhao, juzhang, juzhou, kuwei, lersek, mxie, mzhan, ptoscano, rjones, tzheng, virt-bugs, xiaodwan
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: V2V P2V
Fixed In Version: libguestfs-1.36.2-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1367615 Environment:
Last Closed: 2017-08-01 22:13:55 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: 1359086, 1429643    
Bug Blocks:    

Description Christopher Brown 2017-03-06 13:50:45 UTC
+++ This bug was initially created as a clone of Bug #1367615 +++

Description of problem:
OVMF file which is built for rhel7.3  can't be used for virt-v2v uefi conversion

===error starts===

virt-v2v: error: cannot find firmware for UEFI guests.

You probably need to install OVMF, or AAVMF (if using aarch64)

===ends===

This is a problem with the current virt-p2v iso - is there any way of detecting if the conversion server has OVMF installed before running the conversion process?

Comment 2 Christopher Brown 2017-03-06 13:53:51 UTC
Also, could OVMF be moved into a more "normal" repository to allow a quick yum install?

Comment 3 Richard W.M. Jones 2017-03-06 15:53:42 UTC
AFAIK this should all have been fixed in RHEL 7.3.

Anyway, I need to know:

 - precise version of virt-v2v
 - precise version of OVMF

and please attach the full log when you run the virt-v2v conversion
with the -v and -x options.

Comment 4 Christopher Brown 2017-03-06 16:09:37 UTC
Hi Richard,

Sorry, I don't think I've been clear. The conversion starts, runs but then errors at the very end, several hours after starting, with the error in the original bug.

Better would be for virt-p2v to that OVMF is actually installed (it wasn't) before starting the conversion process, especially as the UEFI warning gets printed at the beginning.

E.g

Start conversion -> Check this is a UEFI guest = true -> Check that conversion server has OVMF installed -> true=proceed or false=exit with error

Does that make sense?

Comment 5 Christopher Brown 2017-03-06 16:10:50 UTC
Or just make OVMF a dependency of virt-v2v package?

Comment 6 Richard W.M. Jones 2017-03-06 16:28:45 UTC
I'm still going to need all the information requested in comment 3 in order
to make any progress on diagnosing this.

(In reply to Christopher Brown from comment #5)
> Or just make OVMF a dependency of virt-v2v package?

OVMF is not a dependency because it isn't (or wasn't) in
the main repos, but that's a separate issue in any case.

Comment 7 Richard W.M. Jones 2017-03-06 18:22:09 UTC
Patch posted to detect OVMF presence earlier in the conversion process
for -o local:

https://www.redhat.com/archives/libguestfs/2017-March/msg00093.html

Comment 8 Christopher Brown 2017-03-06 19:38:37 UTC
Wow, that was quick, thanks Richard!

Feel free to close this bug, I know to install the package in the meantime.

Comment 9 Richard W.M. Jones 2017-03-06 19:49:58 UTC
Let's leave the bug open to track inclusion of the patch.

Comment 10 Richard W.M. Jones 2017-03-07 10:35:24 UTC
Fixed in upstream commit a05e0fc0e8ffa2638e66ed1d71d41c470eadc4d7

Comment 12 kuwei@redhat.com 2017-03-15 07:44:42 UTC
Verify this bug with below builds:
virt-v2v-1.36.2-1.el7.x86_64
libguestfs-1.36.2-1.el7.x86_64
libvirt-3.1.0-2.el7.x86_64
qemu-kvm-rhev-2.8.0-6.el7.x86_64

Steps:
1:Make sure there is no OVMF package installed.
# rpm -qa | grep OVMF
None

2:Convert a uefi guest from vmware to libvirt
#  virt-v2v -ic vpx://root.75.182/data/10.73.3.19/?no_verify=1 rhel73-efi -of qcow2 --password-file /tmp/passwd -on test
[   0.0] Opening the source -i libvirt -ic vpx://root.75.182/data/10.73.3.19/?no_verify=1 rhel73-efi
[   1.1] Creating an overlay to protect the source from being modified
[   1.7] Initializing the target -o libvirt -os default
[   1.7] Opening the overlay
[  14.2] Inspecting the overlay
[  58.2] Checking for sufficient free disk space in the guest
[  58.2] Estimating space required on target for each disk
[  58.2] Converting Red Hat Enterprise Linux Server 7.2 (Maipo) to run on KVM
virt-v2v: This guest has virtio drivers installed.
[ 471.4] Mapping filesystem data to avoid copying unused and blank areas
virt-v2v: warning: fstrim on guest filesystem /dev/sda1 failed.  Usually 
you can ignore this message.  To find out more read "Trimming" in 
virt-v2v(1).

Original message: fstrim: fstrim: /sysroot/: the discard operation is not 
supported
[ 472.9] Closing the overlay
[ 472.9] Checking if the guest needs BIOS or UEFI to boot
virt-v2v: error: cannot find firmware for UEFI guests.

You probably need to install OVMF, or AAVMF (if using aarch64)

If reporting bugs, run virt-v2v with debugging enabled and include the 
complete output:


  virt-v2v -v -x [...]

Result:The conversion is report OVMF error at the end.
Addition:
When i using the below command ,it also has the problem.
#  virt-v2v -ic vpx://root.75.182/data/10.73.3.19/?no_verify=1 rhel73-efi -of qcow2 --password-file /tmp/passwd -on test -o local -os /var/tmp


Hi,rjones,from the patch,we expect to detect OVMF presence earlier in the conversion process. But i think the patch not works better.

Comment 13 Pino Toscano 2017-03-15 09:13:49 UTC
(In reply to kuwei from comment #12)
> 2:Convert a uefi guest from vmware to libvirt
> #  virt-v2v -ic vpx://root.75.182/data/10.73.3.19/?no_verify=1
> rhel73-efi -of qcow2 --password-file /tmp/passwd -on test
> [   0.0] Opening the source -i libvirt -ic
> vpx://root.75.182/data/10.73.3.19/?no_verify=1 rhel73-efi
> [   1.1] Creating an overlay to protect the source from being modified
> [   1.7] Initializing the target -o libvirt -os default
> [   1.7] Opening the overlay
> [  14.2] Inspecting the overlay
> [  58.2] Checking for sufficient free disk space in the guest
> [  58.2] Estimating space required on target for each disk
> [  58.2] Converting Red Hat Enterprise Linux Server 7.2 (Maipo) to run on KVM
> virt-v2v: This guest has virtio drivers installed.
> [ 471.4] Mapping filesystem data to avoid copying unused and blank areas
> virt-v2v: warning: fstrim on guest filesystem /dev/sda1 failed.  Usually 
> you can ignore this message.  To find out more read "Trimming" in 
> virt-v2v(1).
> 
> Original message: fstrim: fstrim: /sysroot/: the discard operation is not 
> supported
> [ 472.9] Closing the overlay
> [ 472.9] Checking if the guest needs BIOS or UEFI to boot
> virt-v2v: error: cannot find firmware for UEFI guests.
> 
> You probably need to install OVMF, or AAVMF (if using aarch64)
> 
> If reporting bugs, run virt-v2v with debugging enabled and include the 
> complete output:
> 
> 
>   virt-v2v -v -x [...]
> 
> Result:The conversion is report OVMF error at the end.
> Addition:
> When i using the below command ,it also has the problem.
> #  virt-v2v -ic vpx://root.75.182/data/10.73.3.19/?no_verify=1
> rhel73-efi -of qcow2 --password-file /tmp/passwd -on test -o local -os
> /var/tmp
> 
> Hi,rjones,from the patch,we expect to detect OVMF presence earlier in the
> conversion process. But i think the patch not works better.

The fix of this bug affects only the -o local mode, -o libvirt (which is what the above run say) behaves the same.  Also, the check in both cases is not at the end of the conversion, but before the actual copying of the data (which is the most expensive part).

Comment 14 kuwei@redhat.com 2017-03-17 02:00:40 UTC
verify the bug with below builds again:
virt-v2v-1.36.2-2.el7.x86_64
libguestfs-1.36.2-2.el7.x86_64

From the bug Bug 1429643 - virt-v2v should depend on OVMF/AAVMF,we will see virt-v2v has depended on OVMF,so I think the bug has fixed,move the bug to VERIFIED

Comment 15 Christopher Brown 2017-06-01 14:20:24 UTC
Thanks, lgtm, feel free to close.

Comment 16 errata-xmlrpc 2017-08-01 22:13:55 UTC
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://access.redhat.com/errata/RHBA-2017:2023