Skip to content

windows qemu-img create vpc/vhdx error

This bug has been copied automatically from: https://bugs.launchpad.net/qemu/+bug/1759522
Reported by 'Zixuan Wang (the.netadmin)' on 2018-03-28 :

On windows, using qemu-img (version 2.11.90) to create vpc/vhdx virtual
disk tends to fail. Here's the way to reproduce:

1. Install qemu-w64-setup-20180321.exe

2. Use `qemu-img create -f vhdx -o subformat=fixed disk.vhdx 512M` to
create a vhdx:
   Formatting 'disk.vhdx', fmt=vhdx size=536870912 log_size=1048576
block_size=0 subformat=fixed

3. Execute `qemu-img info disk.vhdx` gives the result, (note the `disk
size` is incorrect):
   image: disk.vhdx
   file format: vhdx
   virtual size: 512M (536870912 bytes)
   disk size: 1.4M
   cluster_size: 8388608

4. On Windows 10 (V1709), double click disk.vhdx gives an error:
   Make sure the file is in an NTFS volume and isn't in a compressed
folder or volume.

   Using Disk Management -> Action -> Attach VHD gives an error:
   The requested operation could not be completed due to a virtual disk
system limitation. Virtual hard disk files must be uncompressed and
uneccrypted and must not be sparse.

Comparison with Windows 10 created VHDX:

1. Using Disk Management -> Action -> Create VHD:
   File name: win.vhdx
   Virtual hard disk size: 512MB
   Virtual hard disk format: VHDX
   Virtual hard disk type: Fixed size

2. Detach VHDX

3. Execute `qemu-img info win.vhdx` gives the result:
   image: win.vhdx
   file format: vhdx
   virtual size: 512M (536870912 bytes)
   disk size: 516M
   cluster_size: 33554432

Comparison with qemu-img under Ubuntu:

1. Version: qemu-img version 2.5.0 (Debian 1:2.5+dfsg-5ubuntu10.16),
Copyright (c) 2004-2008 Fabrice Bellard

2. qemu-img create -f vhdx -o subformat=fixed lin.vhdx 512M
   Formatting 'lin.vhdx', fmt=vhdx size=536870912 log_size=1048576
block_size=0 subformat=fixed

3. qemu-img info lin.vhdx
   image: lin.vhdx
   file format: vhdx
   virtual size: 512M (536870912 bytes)
   disk size: 520M
   cluster_size: 8388608

4. Load lin.vhdx under Windows 10 is ok

The same thing happens on `vpc` format with or without `oformat=fixed`, it
seems that windows version of qemu-img has some incorrect operation? My
guess is that windows version of qemu-img doesn't handle the description
field of vpc/vhdx, which leads to an incorrect `disk size` field.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information