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: | libguestfs | Assignee: | Richard W.M. Jones <rjones> | ||||
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
Severity: | high | Docs Contact: | |||||
Priority: | high | ||||||
Version: | 7.2 | CC: | juzhou, mzhan, ptoscano, xiaodwan, ydu | ||||
Target Milestone: | rc | Keywords: | 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: |
|
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. Upstream fixes: https://github.com/libguestfs/libguestfs/commit/a324ae2ad72f2a2188eb0d4398c9e6548c499c5a https://github.com/libguestfs/libguestfs/commit/9f0036a0265417bc7fd6e6d2010f185a4a92d225 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. 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. 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 |
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.