Am 10.11.2012 09:22, schrieb Gerhard Wiesinger: > Fixed a MAJOR BUG in VMDK files on file boundaries on reads > and ALSO ON WRITES WHICH MIGHT CORRUPT THE IMAGE AND DATA!!!!!! > > Triggered for example with the following VMDK file (partly listed): > # Extent description > RW 4193792 FLAT "XP-W1-f001.vmdk" 0 > RW 2097664 FLAT "XP-W1-f002.vmdk" 0 > RW 4193792 FLAT "XP-W1-f003.vmdk" 0 > RW 512 FLAT "XP-W1-f004.vmdk" 0 > RW 4193792 FLAT "XP-W1-f005.vmdk" 0 > RW 2097664 FLAT "XP-W1-f006.vmdk" 0 > RW 4193792 FLAT "XP-W1-f007.vmdk" 0 > RW 512 FLAT "XP-W1-f008.vmdk" 0 > > Patch includes: > 1.) Patch fixes wrong calculation on extent boundaries. Especially it fixes > the relativeness of the sector number to the current extent. > > Verfied correctness with: > 1.) Converted either with Virtualbox to VDI and then with qemu-img and then > with qemu-img only > VBoxManage clonehd --format vdi /VM/XP-W/new/XP-W1.vmdk > ~/.VirtualBox/Harddisks/XP-W1-new-test.vdi > ./qemu-img convert -O raw ~/.VirtualBox/Harddisks/XP-W1-new-test.vdi > /root/QEMU/VM-XP-W1/XP-W1-via-VBOX.img > md5sum /root/QEMU/VM-XP-W/XP-W1-direct.img > md5sum /root/QEMU/VM-XP-W/XP-W1-via-VBOX.img > => same MD5 hash > 2.) Verified debug log files > 3.) Run Windows XP successfully > 4.) chkdsk run successfully without any errors > > Signed-off-by: Gerhard Wiesinger <li...@wiesinger.com>
Thanks, applied to the block branch. Something corrupted your patch (indentation of many unchanged lines differed by one space); I fixed it for this patch, but please check what caused this so that your next patch can apply without changes. It would also be a great idea to add a (VMDK only) test case to qemu-iotests that catches this kind of bugs. Kevin