This is preliminary support for VHDX images, based on the spec: "VHDX Format Specification v0.95", published 4/12/2012 https://www.microsoft.com/en-us/download/details.aspx?id=29681
My working git repo for this work is: https://github.com/codyprime/qemu-kvm-jtc/commits/jtc-vhdx-work-rfc1 git://github.com/codyprime/qemu-kvm-jtc.git branch jtc-vhdx-work-rfc1 Debug prints can be ignored, as they are just there for development. A lot of error handling is not in place yet, and write support is missing. Also missing is support for differencing files. This works well enough to mount a VHDX image (with readonly=on), and read the content. Work in progress (will be available in my git repo): - write support - differencing file support - more error handling - read performance improvements (coroutines, etc.) - split some of the functions out of the vhdx.c file (e.g. region / metdata handling) Any comments are welcome Jeff Cody (4): qemu: add castagnoli crc32c checksum algorithm block: vhdx header for the QEMU support of VHDX images block: VHDX block driver support block: add vhdx to Makefile.obj for compile block/Makefile.objs | 1 + block/vhdx.c | 814 ++++++++++++++++++++++++++++++++++++++++++++++++++ block/vhdx.h | 349 ++++++++++++++++++++++ include/qemu/crc32c.h | 35 +++ util/Makefile.objs | 1 + util/crc32c.c | 115 +++++++ 6 files changed, 1315 insertions(+) create mode 100644 block/vhdx.c create mode 100644 block/vhdx.h create mode 100644 include/qemu/crc32c.h create mode 100644 util/crc32c.c -- 1.8.1.2