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

Reply via email to