windows qemu-img create vpc/vhdx error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
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-
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-
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.
Also, `force_size` suboption of `vpc` doesn't work on win version of qemu-img.