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 1299250 - qemu-img created VMDK images are unbootable
Summary: qemu-img created VMDK images are unbootable
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm
Version: 7.2
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: rc
: ---
Assignee: Fam Zheng
QA Contact: Ping Li
Yehuda Zimmerman
URL:
Whiteboard:
Depends On:
Blocks: 1203710 1299116 1305606 1313485
TreeView+ depends on / blocked
 
Reported: 2016-01-17 20:45 UTC by Robert Scheck
Modified: 2019-12-16 05:17 UTC (History)
13 users (show)

Fixed In Version: qemu-kvm-1.5.3-111.el7
Doc Type: Release Note
Doc Text:
Data layout of VMDK images with streamOptimized sub-format was incorrect Previously, the data layout of a Virtual Machine Disk (VMDK) image with a streamOptimized sub-format created by the qemu-img tool was incorrect. This prevented the VMDK image from being bootable when imported to ESX servers. In this update, the image is converted to a valid VMDK streamOptimized image. This results in the VMDK image being bootable.
Clone Of:
Environment:
Last Closed: 2016-11-03 20:09:53 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
/tmp/example.ovf.sh (7.54 KB, text/plain)
2016-01-17 20:45 UTC, Robert Scheck
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2016:2585 0 normal SHIPPED_LIVE Moderate: qemu-kvm security, bug fix, and enhancement update 2016-11-03 12:09:03 UTC

Description Robert Scheck 2016-01-17 20:45:38 UTC
Created attachment 1115668 [details]
/tmp/example.ovf.sh

Description of problem:
Any VMDK image created by qemu-img is unbootable. Note that the import of
the VMDK image via OVA fails already before (due to bug #1299116). Failure
in VMware looks like this:

--- snipp ---
.
error: unknown filesystem.
Entering rescue mode...
grub rescue> _
--- snapp ---

Version-Release number of selected component (if applicable):
qemu-img-1.5.3-105.el7_2.1.x86_64
VMware vSphere Client, Version 5.1.0, Build 1064113
VMware ESXi, Version 5.1.0, Build 1065491, German-000

How reproducible:
Everytime, see above and below.

Steps to Reproduce:
1. dd if=/dev/zero of=/tmp/example.img bs=1M count=1200
2. parted /tmp/example.img mktable msdos
3. parted /tmp/example.img mkpart primary ext4 1 -- -0
4. parted /tmp/example.img set 1 boot on
5. kpartx -avs /tmp/example.img
6. mkfs.ext4 /dev/mapper/loop0p1
7. mkdir -p /mnt/example/
8. mount /dev/mapper/loop0p1 /mnt/example/
9. yum -y --releasever=7 --nogpg --installroot=/mnt/example install \
     systemd passwd centos-release kernel grub2
10. mount --bind /dev /mnt/example/dev
11. mount --bind /proc /mnt/example/proc
12. mount --bind /sys /mnt/example/sys
13. echo "GRUB_TIMEOUT=5" > /mnt/example/etc/default/grub
14. echo "GRUB_DISTRIBUTOR=\"\$(sed 's, release .*$,,g' \
      /etc/system-release)\"" >> /mnt/example/etc/default/grub
15. echo "GRUB_DEFAULT=saved" >> /mnt/example/etc/default/grub
16. echo "GRUB_DISABLE_SUBMENU=true" >> /mnt/example/etc/default/grub
17. echo "GRUB_TERMINAL_OUTPUT=\"console\"" >> \
      /mnt/example/etc/default/grub
18. echo "GRUB_CMDLINE_LINUX=\" vconsole.keymap=de \
      vconsole.font=latarcyrheb-sun16\"" >> \
      /mnt/example/etc/default/grub
19. echo "GRUB_DISABLE_RECOVERY=\"true\"" >> \
      /mnt/example/etc/default/grub
20. chroot /mnt/example/ grub2-mkconfig -o /boot/grub2/grub.cfg
21. chroot /mnt/example/ grub2-install /dev/loop0
22. umount /mnt/example/dev
23. umount /mnt/example/proc
24. umount /mnt/example/sys
25. umount /mnt/example/
26. kpartx -dvs /tmp/example.img
27. qemu-img convert /tmp/example.img -O vmdk \
      -o adapter_type=lsilogic,subformat=streamOptimized,compat6 \
      /tmp/example-disk1.vmdk
28. printf '\x03' | dd conv=notrunc of=/tmp/example-disk1.vmdk \
      bs=1 seek=$((0x4))
29. sh /tmp/example.ovf.sh
30. tar -C /tmp/ -cf /tmp/example.ova example.ovf example-disk1.vmdk
31. Import example.ova into VMware -> fails with error above

Actual results:
qemu-img created VMDK images are unbootable

Expected results:
qemu-img created VMDK images should be bootable. Repeating the steps
above with qemu-img-2.5.0-3.fc24.x86_64 (rebuilt from Fedora Rawhide
for RHEL 7) leads to success.

Additional info:
Virtual size alternatively from: qemu-img info /tmp/example-disk1.vmdk

Comment 2 Ademar Reis 2016-01-19 17:03:55 UTC
Robert, thanks for the bugreport.

As I said in the other BZ (bug 1299116), if this issue is critical or in any way time sensitive, please raise a ticket through your regular Red Hat support channels to make certain it receives the proper attention and prioritization that will result in a timely resolution.

For information on how to contact the Red Hat production support team, please visit: https://www.redhat.com/support/process/production/#howto

Comment 3 Robert Scheck 2016-01-19 17:38:51 UTC
Ademar, thanks for the reminder.

Cross-filed case 01569297 on the Red Hat customer portal.

Comment 5 Robert Scheck 2016-02-15 11:01:32 UTC
Does this mean there is something to test? If so, may you share the testing
update with me (either here or via the ticket), please?

Comment 6 Fam Zheng 2016-02-15 13:21:31 UTC
Yes, you can test the scratch build rpms that include the fixes for this bug (and bz 1299116):

http://people.redhat.com/fzheng/bz1299250/

Comment 7 Robert Scheck 2016-02-15 13:37:23 UTC
Thanks! Btw, is it intended that there is no SRPM? The %changelog does not
mention anything, so I am wondering if it's really patched (before running
my tests).

Comment 9 Fam Zheng 2016-02-18 08:28:55 UTC
My reply to comment 7 from the other day got lost.

Robert, the SRPM is not preserved but the packages do have the fix.

Thanks,

Fam

Comment 10 Robert Scheck 2016-02-21 14:12:36 UTC
I would like to confirm that the updated RPM (qemu-img-1.5.3-108.el7.test)
works fine for me and passed all my tests regarding this issue.

Comment 11 Fam Zheng 2016-02-22 01:39:56 UTC
Great, thanks!

Comment 12 Mike McCune 2016-03-28 22:35:49 UTC
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions

Comment 13 Miroslav Rezanina 2016-05-05 06:38:37 UTC
Fix included in qemu-kvm-1.5.3-111.el7

Comment 15 Ping Li 2016-07-26 15:00:13 UTC
Reproduced the issue with qemu-kvm-1.5.3-110.el7.x86_64. After step 7, guest cannot boot up.

Verified the issue with qemu-kvm-1.5.3-111.el7.x86_64(Step 3 is unnecessary). After step 7, guest can boot up successfully.

Steps to reproduce:
1. Create a guest on ESXi 5.1 via vSphere and copy out the flat vmdk file(such as rhel6.8z_64_lazy-flat.vmdk, rename it as example.img. The format of the file is raw).
2. qemu-img convert example.img -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 example.vmdk
3. printf '\x03' | dd conv=notrunc of=example.vmdk bs=1 seek=$((0x4))
4. sh example.ovf.sh
5. tar cf example.ova example.ovf example.vmdk
6. Import example.ova into ESXi 5.1.
7. Boot up the guest.

Comment 19 errata-xmlrpc 2016-11-03 20:09:53 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/RHSA-2016-2585.html


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