Bug 1237869

Summary: Virtio drivers are not installed for windows 2008 guests by virt-v2v
Product: Red Hat Enterprise Linux 7 Reporter: tingting zheng <tzheng>
Component: libguestfsAssignee: Richard W.M. Jones <rjones>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 7.2CC: juzhou, mzhan, ptoscano, xiaodwan, ydu
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard: V2V
Fixed In Version: libguestfs-1.28.1-1.42.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-19 07:02:05 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
Debug info for conversion of win2008 none

Description tingting zheng 2015-07-01 03:23:53 UTC
Created attachment 1044863 [details]
Debug info for conversion of win2008

Description of problem:
When convert windows 2008 and windows 2008r2 guests,there is warning:
virt-v2v: warning: there are no virtio drivers available for this version 
of Windows (6.0 x86_64 unknown).  virt-v2v looks for drivers in 
/usr/share/virtio-win

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 windows 2008 guest.
2.Use virt-v2v to convert the above guest.
# virt-v2v -ic vpx://root.72.112/data/10.66.72.49/?no_verify=1 -o rhev -os 10.66.90.115:/vol/v2v_auto/auto_export -n rhevm -b rhevm  --password-file /tmp/passwd2 esx6.0-win2008-x86_64 
[   0.0] Opening the source -i libvirt -ic vpx://root.72.112/data/10.66.72.49/?no_verify=1 esx6.0-win2008-x86_64
[   1.0] Creating an overlay to protect the source from being modified
[   1.0] Opening the overlay
[  12.0] Initializing the target -o rhev -os 10.66.90.115:/vol/v2v_auto/auto_export
virt-v2v: warning: cannot write files to the NFS server as 36:36, even 
though we appear to be running as root. This probably means the NFS client 
or idmapd is not configured properly.

You will have to chown the files that virt-v2v creates after the run, 
otherwise RHEV-M will not be able to import the VM.
[  12.0] Inspecting the overlay
[  69.0] Checking for sufficient free disk space in the guest
[  69.0] Estimating space required on target for each disk
[  69.0] Converting Windows Server (R) 2008 Standard to run on KVM
virt-v2v: warning: there are no virtio drivers available for this version 
of Windows (6.0 x86_64 unknown).  virt-v2v looks for drivers in 
/usr/share/virtio-win

The guest will be configured to use slower emulated devices.
virt-v2v: This guest does not have virtio drivers installed.
[  75.0] Mapping filesystem data to avoid copying unused and blank areas
[  75.0] Closing the overlay
[  76.0] Copying disk 1/1 to /tmp/v2v.iegkw7/c47aef06-8e26-4bc0-b340-2e8b2028f073/images/8ee7385c-4dfb-43f6-90ec-b182fc0ba699/bad77483-f36f-4140-b3b3-bf9e18c50c33 (raw)
    (100.00/100%)
[ 533.0] Creating output metadata
[ 533.0] Finishing off

3.Check virtio drivers location:
# pwd
/usr/share/virtio-win/drivers/amd64/Win2008
# ls
netkvm.cat  netkvm.inf  netkvm.sys  vioscsi.cat  vioscsi.inf  vioscsi.sys  viostor.cat  viostor.inf  viostor.sys

4.Boot the guest,all virtio drivers are not installed for windows 2008.

Actual results:
As description.

Expected results:
Virtio drivers are installed for win2008/win2008r2 guest.

Additional info:
1.Attached the debug info.
2.Other windows like win7 and win2003 works well.

Comment 6 Richard W.M. Jones 2015-07-01 10:07:21 UTC
The problem is with the inspection data for this guest:

i_root = /dev/sda1
i_type = windows
i_distro = windows
i_arch = x86_64
i_major_version = 6
i_minor_version = 0
i_package_format = unknown
i_package_management = unknown
i_product_name = Windows Server (R) 2008 Standard
i_product_variant = unknown
i_uefi = false

product-variant is "unknown", but virt-v2v expects to match "Server"
here, hence it does not find the driver.

Inspection reads the product variant from
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
in a key named InstallationType, but for this guest that
key was not found.

Comment 8 Richard W.M. Jones 2015-07-01 10:54:22 UTC
Actually my test W2K8R2 machine has:

"InstallationType"=str(1):"Server"

But the patch still seems to be fine as we have found a
Windows machine that lacks InstallationType.

Comment 10 tingting zheng 2015-07-02 08:26:50 UTC
Tested with:
libvirt-1.2.16-1.el7.x86_64
virt-v2v-1.28.1-1.42.el7.x86_64
qemu-kvm-1.5.3-92.el7.x86_64

Use virt-v2v to convert windows 2008 guest to rhev and libvirt,the virtio drivers are all installed.
# virt-v2v -ic vpx://root.72.112/data/10.66.72.49/?no_verify=1 -o rhev -os 10.66.90.115:/vol/v2v_auto/auto_export -n rhevm -b rhevm  --password-file /tmp/passwd2 esx6.0-win2008-x86_64 
[   0.0] Opening the source -i libvirt -ic vpx://root.72.112/data/10.66.72.49/?no_verify=1 esx6.0-win2008-x86_64
[   1.0] Creating an overlay to protect the source from being modified
[   2.0] Opening the overlay
[ 182.0] Initializing the target -o rhev -os 10.66.90.115:/vol/v2v_auto/auto_export
virt-v2v: warning: cannot write files to the NFS server as 36:36, even 
though we appear to be running as root. This probably means the NFS client 
or idmapd is not configured properly.

You will have to chown the files that virt-v2v creates after the run, 
otherwise RHEV-M will not be able to import the VM.
[ 182.0] Inspecting the overlay
[ 252.0] Checking for sufficient free disk space in the guest
[ 252.0] Estimating space required on target for each disk
[ 252.0] Converting Windows Server (R) 2008 Standard to run on KVM
virt-v2v: This guest has virtio drivers installed.
[ 264.0] Mapping filesystem data to avoid copying unused and blank areas
[ 265.0] Closing the overlay
[ 265.0] Copying disk 1/1 to /tmp/v2v.UO5E0p/1e745d2e-0ec1-43ff-884f-07c32116967e/images/df045c07-6cbb-4464-88f6-04d110814ee2/f024baaf-60a8-4fd6-96b4-0ba16e83542e (raw)
    (100.00/100%)
[ 817.0] Creating output metadata
[ 817.0] Finishing off

# 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-win2008-i386
[   0.0] Opening the source -i libvirt -ic vpx://root.72.112/data/10.66.72.49/?no_verify=1 esx6.0-win2008-i386
[   1.0] Creating an overlay to protect the source from being modified
[   1.0] Opening the overlay
[  12.0] Initializing the target -o libvirt -os default
[  12.0] Inspecting the overlay
[  45.0] Checking for sufficient free disk space in the guest
[  45.0] Estimating space required on target for each disk
[  45.0] Converting Windows Server (R) 2008 Standard to run on KVM
virt-v2v: This guest has virtio drivers installed.
[  54.0] Mapping filesystem data to avoid copying unused and blank areas
[  54.0] Closing the overlay
[  55.0] Copying disk 1/1 to /var/lib/libvirt/images/esx6.0-win2008-i386-sda (raw)
    (100.00/100%)
[ 600.0] Creating output metadata
Pool default refreshed

Domain esx6.0-win2008-i386 defined from /tmp/v2vlibvirt7fa043.xml

[ 602.0] Finishing off

After conversion,boot guests and check virtio drivers in guest,for both disk and network,it shows as virtio.

Refer to the above comments,move the bug to VERIFIED.

Comment 12 errata-xmlrpc 2015-11-19 07:02:05 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://rhn.redhat.com/errata/RHBA-2015-2183.html