From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51339) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USllx-0008OQ-7M for qemu-devel@nongnu.org; Thu, 18 Apr 2013 06:09:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1USllq-0006rS-1T for qemu-devel@nongnu.org; Thu, 18 Apr 2013 06:08:57 -0400 Received: from mx1.redhat.com ([209.132.183.28]:15362) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USllp-0006rI-M3 for qemu-devel@nongnu.org; Thu, 18 Apr 2013 06:08:49 -0400 Date: Thu, 18 Apr 2013 18:08:46 +0800 From: Fam Zheng Message-ID: <20130418100845.GA21610@localhost.localdomain> References: <20130418070855.GA6942@localhost.localdomain> <20130418073903.GD19195@stefanha-thinkpad.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130418073903.GD19195@stefanha-thinkpad.redhat.com> Subject: Re: [Qemu-devel] qemu-iotests 042: zero size image on VMDK List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: Kevin Wolf , qemu-devel@nongnu.org On Thu, 04/18 09:39, Stefan Hajnoczi wrote: > On Thu, Apr 18, 2013 at 03:08:55PM +0800, Fam Zheng wrote: > > Currently VMDK block driver fails qemu-iotest case 042 because it > > refuses to create block with zero size (silently). Is support for zero > > size image desired or should this case be skipped? > > > > $ qemu-img create -f vmdk t.vmdk 0 > > Formatting 't.vmdk', fmt=vmdk size=0 compat6=off > > qemu-img: t.vmdk: error while creating vmdk: No such file or directory > > Is there a reason to refuse 0-sized images? The VMware tools can resize > images so it would be possible to grow them later (i.e. the use case is > weird but might still be valid). > > It's also worth checking if VMware tools allow you to create 0-sized > image and whether they can operate on them. If they fail to open or > inspect 0-sized images, then QEMU should not create them. Not possible for VMware tools, either. See the vmware-vdiskmanager behavior here: $ ../vmdk.py t.vmdk resize 0 OK $ ../vmdk.py t.vmdk show *** Header *** magic : 1447904331 version : 1 flags : 3 capacity : 0 grain_size : 128 descriptor_offset : 1 descriptor_size : 20 num_gtes_per_gt : 512 rgd_offset : 21 gd_offset : 278 overhead : 640 unclean_shutdown : False single_endline_char : non_endline_char : double_endline_char : double_endline_char2 : compress_algorithm : 0 *** Embeddd Descriptor *** # Disk DescriptorFile version=1 encoding="UTF-8" CID=fffffffe parentCID=ffffffff isNativeSnapshot="no" createType="monolithicSparse" # Extent description RW 0 SPARSE "t.vmdk" # The Disk Data Base #DDB ddb.deletable = "true" ddb.virtualHWVersion = "6" ddb.longContentID = "ff7abf4bda4302142e8ba8593ad0bdb6" ddb.uuid = "60 00 C2 94 2e a6 38 d0-8b 2c 21 37 49 8b 15 70" ddb.geometry.cylinders = "2048" ddb.geometry.heads = "64" ddb.geometry.sectors = "32" ddb.adapterType = "lsilogic" $ vmware-vdiskmanager -x 2G t.vmdk => Failed to open the disk 't.vmdk' : The file specified is not a virtual disk (0xf00003ebf). Failed to open disk 't.vmdk' : The file specified is not a virtual disk (0xf00003ebf). => $ ../vmdk.py t.vmdk resize 1 OK $ vmware-vdiskmanager -x 2G t.vmdk => Grow: 0% done.Disk expansion completed successfully. WARNING: If the virtual disk is partitioned, you must use a third-party utility in the virtual machine to expand the size of the partitions. For more information, see: http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647 -- Fam