[Fedora-xen] virt-clone/Fedora 8/Xen3.1 ... ERROR: Disk size must be an int or a float.

Cole Robinson crobinso at redhat.com
Mon Feb 11 15:15:21 UTC 2008


Petrus B. van Bork wrote:
> Dear Fellow-List Members:
> 
>                                            I am running the latest, 
> fully updated, F8 Xen kernel with F8, updated DomU on top.  I need to 
> clone that DomU - indeed, a need to do rather a lot of cloning to 
> fulfill our project's mission.  I tried to run virt-clone but it will 
> not perform as per the man's examples and despite hours of searching on 
> the 'net I cannot find any reason why not.
> 
> Here is the example from the man:
> 
> -EXAMPLES
> -    Clone the guest called "demo" which has a single disk to copy
> -
> -      # virt-clone \
> -           --original demo \
> -           --name newdemo \
> -           --file /var/lib/xen/images/newdemo.img
> 
> What I have tried:
> 
> Where:
> 
> HanoverGuest = name of functioning DomU (shut off for cloning...)
> KohaHanoverConf_Gold = name of new DomU
> New File Image: KohaHanoverConf_Gold.dsk
> 
> Here is the command sequence I issue:
> 
> #virt-clone --original HanoverGuest --name KohaHanoverConf_Gold --file /var/lib/xen/images/KohaHanoverConf_Gold.dsk -d
> 
> I get:
> 
> Fri, 08 Feb 2008 14:57:31 DEBUG	start clone with HV Xen
> Fri,   ditto		  DEBUG clone device list: ['/var/lib/xen/images/KohaHanoverConf_Gold.dsk']
> Fri,   ditto		  DEBUG clone device size: [1048570000L]
> Fri,   ditto		  DEBUG clone device type: [True]
> ERROR:  Disk size must an int or a float.
> What would you like to use as the disk (path)?
> 
> ...I have tried many, many variants with no more luck and usually with the same error message.  I have tried to run it 
> without creating a disk image myself, with one of 0 bytes size and, as can be seen, one of 10gig size.  No joy!
> Furthermore, I cannot find any information on the net on what those debug messages mean so I have little to judge what is going on.
> 
> Apparently the ERROR msg. itself,likely, is generated by:
> 
> @@ -83,9 +77,13 @@ class VirtualDisk:
>              if size is None and not os.path.exists(self.path):
>                  raise ValueError, \
>                      _("A size must be provided for non-existent disks")
> -            if size is not None and size <= 0:
> +            if size is not None and \
> +               (__builtin__.type(size) is not __builtin__.type(1) and \
> +			    __builtin__.type(size) is not __builtin__.type(1.0)):
> +               raise ValueError, _("Disk size must be an int or a float.")
> 
> ...which comes from a September 28, 2007 patch authored by Cole Robinson for virtinst validation fixes, found here:
> http://www.spinics.net/linux/fedora/et-mgmt-tools/msg01760.html ...alas, without knowing all the code I am not sure what is going on.
> It seems to suggest that somehow the diskimage file is not recognized as a built in data type or something similar - but there seem to
> be no commands available in virt-clone to set the datatype, adapt for the date type or even tell a user what datatype they need.  Since I am a relative
> Linux newbie I may very well be making a classic 'flat-forehead' error - but what?
> 
> I tried to run virt-clone as a basic interactive tool - the man states that it can run interactively with no command line switches.  Here is what happens:
> 
> #virt-clone
> 
> ..and I get...
> 
> ERROR: A new disk image file for the clone guest is required and then it goes back to the prompt.  Not helpful!
> 
> I very badly need to clone DomU's effectively during our development process - and afterwards and I would be excruciatingly grateful for any help anyone can provide!
> 
> Regards,
> 
> Petrus
> 

Hi Petrus,

This is fixed upstream:

http://hg.et.redhat.com/virt/applications/virtinst--devel?cs=611782118e76

But this isn't in fedora yet. Follow the instructions at
http://virt-manager.org/scmrepo.html to check out the latest virtinst--devel
and you should be able to run virt-clone directly from the checkout.

- Cole




More information about the Fedora-xen mailing list