I noticed the cloudbase version does NOT have this issue. https://cloudbase.it/qemu-img-windows/ The weilnetz version DOES have this issue. https://qemu.weilnetz.de/w64/
So, I found the source code for each release and compared them. cloudbase https://repo.or.cz/w/qemu/ar7.git/ weilnetz https://github.com/cloudbase/qemu git remote add origin git://repo.or.cz/qemu/ar7.git git remote add cloudbase https://github.com/cloudbase/qemu.git git fetch --all git diff v2.3.0 cloudbase/v2.3.0-cloudbase And I see that the cloudbase version comments out set_sparse(fd). I think the solution is to remove set_sparse. You can find it in block/file-win32.c ** Attachment added: "git diff v2.3.0 cloudbase/v2.3.0-cloudbase" https://bugs.launchpad.net/qemu/+bug/1759522/+attachment/5486954/+files/diff%20v2.3.0%20cloudebasev2.3.0-clousebase.txt -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1759522 Title: windows qemu-img create vpc/vhdx error Status in QEMU: New Bug description: 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 manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1759522/+subscriptions