RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1124144 - qemu-img fail to recognize the Hyper-V Virtual Hard Disk (VHD) format image
Summary: qemu-img fail to recognize the Hyper-V Virtual Hard Disk (VHD) format image
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.5
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Jeff Cody
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks: 1124636
TreeView+ depends on / blocked
 
Reported: 2014-07-29 05:14 UTC by Sibiao Luo
Modified: 2015-01-27 17:45 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1124636 (view as bug list)
Environment:
Last Closed: 2015-01-27 17:45:36 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Sibiao Luo 2014-07-29 05:14:45 UTC
Description of problem:
I created one 1GB VHD(Fixed size) format image via, but qemu-img fail to recognize the Hyper-V Virtual Hard Disk (VHD) format image.
BTW, QEMU can used it as read-only device to boot up and can detect it in guest correctly. I will attach the image for your debugging.

Version-Release number of selected component (if applicable):
host info:
# uname -r && rpm -q qemu-kvm-rhev
2.6.32-493.el6.x86_64
qemu-kvm-rhev-0.12.1.2-2.431.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1.create a VHD(Fixed size and Dynamically expanding) format image via Hyper-v(Hyper-V Manager Verfison: 6.3.9600.16384) in Window Server 2012 R2.
e.g.1.Choose Disk Format(VHD)----Choose Disk Type(Fixed size)----1GB sluo1-fixed-size.vhd
e.g.2.Choose Disk Format(VHD)----Choose Disk Type(Dynamically expanding)----1GB sluo2-dynamically-expanding.vhd
2.Copy out the VHD images to local host and use qemu-img to recognize them or convert to qcow2 image.
# qemu-img info sluo1-fixed-size.vhd 
# qemu-img info sluo2-dynamically-expanding.vhd 
3.Launch a KVM guest with the VHD image as read-only device.
e.g.:...-drive file=/home/sluo1-fixed-size.vhd,if=none,format=vpc,id=drive-data-disk,cache=none,werror=stop,rerror=stop,readonly=on -device virtio-blk-pci,bus=pci.0,addr=0x7,drive=drive-data-disk,id=data-disk

Actual results:
after step 2, 
# qemu-img info sluo1-fixed-size.vhd 
image: sluo1-fixed-size.vhd
file format: raw                    <----------------- should be vpc
virtual size: 1.0G (1073742336 bytes)
disk size: 1.0G
# qemu-img info sluo2-dynamically-expanding.vhd 
image: sluo2-dynamically-expanding.vhd
file format: vpc
virtual size: 1.0G (1073479680 bytes)
disk size: 8.0K
cluster_size: 2097152
# qemu-img convert -p -f vpc -O qcow2 sluo1-fixed-size.vhd test1.qcow2
    (100.00/100%)
# qemu-img convert -p -f vpc -O qcow2 sluo2-dynamically-expanding.vhd test2.qcow2
    (100.00/100%)

after step 3, boot up KVM guest successfully and the VHD disk can be detected in guest correctly.

Expected results:
qemu-img can recognize the Hyper-V Virtual Hard Disk (VHD) format image correctly.

Additional info:

Comment 3 Jeff Cody 2014-07-29 14:56:20 UTC
Hi Sibiao,

Thanks for the sample issue.  For fixed-sized VPC (VHD) images, qemu currently cannot autodetect the type during a probe.  This is because for a format-probe, QEMU sends a data chunk from the beginning of the file to each image format driver, to detect header signatures / magic.  However, fixed sized VPC/VHD images only have a footer at the end of a file, and no header at the beginning.  This means that the image will most likely just be detected as 'raw'.

This could be changed upstream, as a feature enhancement.

Comment 4 Sibiao Luo 2014-07-30 02:12:11 UTC
(In reply to Jeff Cody from comment #3)
> Hi Sibiao,
> 
> Thanks for the sample issue.  For fixed-sized VPC (VHD) images, qemu
> currently cannot autodetect the type during a probe.  This is because for a
> format-probe, QEMU sends a data chunk from the beginning of the file to each
> image format driver, to detect header signatures / magic.  However, fixed
> sized VPC/VHD images only have a footer at the end of a file, and no header
> at the beginning.  This means that the image will most likely just be
> detected as 'raw'.
> 
> This could be changed upstream, as a feature enhancement.

Yes, thanks for your detail explains. BTW, qemu-img can recognize for the VHDX(Fixed size/Dynamically expanding) as vhdx correctly.

Choose Disk Format+----VHD----Choose Disk Type+----Fixed size
                  |                           |
                  |                           +----Dynamically expanding
                  |                           |
                  |                           +----Differencing
                  |
                  +----VHDX---Choose Disk Type+----Fixed size
                                              |
                                              +----Dynamically expanding
                                              |
                                              +----Differencing

# qemu-img info sluo3-fixed-size.vhdx 
image: sluo3-fixed-size.vhdx
file format: vhdx
virtual size: 1.0G (1073741824 bytes)
disk size: 1.0G
cluster_size: 33554432

# qemu-img info sluo4-dynamically-expanding.vhdx 
image: sluo4-dynamically-expanding.vhdx
file format: vhdx
virtual size: 1.0G (1073741824 bytes)
disk size: 4.0M
cluster_size: 33554432

Best Regards,
sluo


Note You need to log in before you can comment on or make changes to this bug.