[virt-tools-list] Question about the image format

Cole Robinson crobinso at redhat.com
Thu Apr 8 13:58:51 UTC 2010


On 04/07/2010 10:45 PM, Dustin Xiong wrote:
> 
> 
> 
>> Date: Tue, 6 Apr 2010 14:17:47 +0800
>> Subject: Re: [virt-tools-list] Question about the image format
>> From: miles.kuo at gmail.com
>> To: x_k_123 at hotmail.com
>> CC: virt-tools-list at redhat.com
>>
>> The virt-manager supports it I think. I've tried it on
>> virt-manager-0.8.3 and it works well as the qemu-kvm commands.
>>
>> Could you paste your XML file of the VM under virt-manager here?
>>
> I can't create the VM, so I didn't have the XML file.
> But I could use the same way to create VM2. The only differences is the disk images.
> The vm2.img comes from this command : qemu-img create -f qcow vm2.img 4G
> The vm3.img comes from the command :  qemu-img create -b vm1.img -f qcow vm3.img
> 
> virsh # create vm3.xml
> error: Failed to create domain from vm3.xml
> error: internal error unable to start guest: qemu: could not open disk image /var/lib/libvirt/images/vm3.img
> 
> virsh # create vm2.xml
> Domain vm2 created from vm2.xml
> 
> The XML file as below:
> <domain type='kvm'>
>   <name>vm2</name>
>   <uuid>7cb40798-1247-85e3-5e5b-e044eafbfff3</uuid>
>   <memory>524288</memory>
>   <currentMemory>524288</currentMemory>
>   <vcpu>1</vcpu>
>   <os>
>     <type arch='i686' machine='pc-0.11'>hvm</type>
>     <boot dev='hd'/>
>   </os>
>   <features>
>     <acpi/>
>     <apic/>
>     <pae/>
>   </features>
>   <clock offset='utc'/>
>   <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>   <on_crash>restart</on_crash>
>   <devices>
>     <emulator>/usr/bin/kvm</emulator>
>     <disk type='file' device='disk'>
>       <driver name='qemu' type='qcow'/>
>       <source file='/var/lib/libvirt/images/vm2.img'/>
>       <target dev='hda' bus='ide'/>
>     </disk>
>     <disk type='block' device='cdrom'>
>       <driver name='qemu' type='raw'/>
>       <target dev='hdc' bus='ide'/>
>       <readonly/>
>     </disk>
>     <interface type='network'>
>       <mac address='52:54:00:5d:2c:c6'/>
>       <source network='default'/>
>     </interface>
>     <serial type='pty'>
>       <target port='0'/>
>     </serial>
>     <console type='pty'>
>       <target port='0'/>
>     </console>
>     <input type='mouse' bus='ps2'/>
>     <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
>     <video>
>       <model type='cirrus' vram='9216' heads='1'/>
>     </video>
>   </devices>
> </domain>
> 
> 
> <domain type='kvm'>
>   <name>vm3</name>
>   <uuid>7cb40798-1247-85e3-5e5b-e044eafbfff3</uuid>
>   <memory>524288</memory>
>   <currentMemory>524288</currentMemory>
>   <vcpu>1</vcpu>
>   <os>
>     <type arch='i686' machine='pc-0.11'>hvm</type>
>     <boot dev='hd'/>
>   </os>
>   <features>
>     <acpi/>
>     <apic/>
>     <pae/>
>   </features>
>   <clock offset='utc'/>
>   <on_poweroff>destroy</on_poweroff>
>   <on_reboot>restart</on_reboot>
>   <on_crash>restart</on_crash>
>   <devices>
>     <emulator>/usr/bin/kvm</emulator>
>     <disk type='file' device='disk'>
>       <driver name='qemu' type='qcow'/>
>       <source file='/var/lib/libvirt/images/vm3.img'/>
>       <target dev='hda' bus='ide'/>
>     </disk>
>     <disk type='block' device='cdrom'>
>       <driver name='qemu' type='raw'/>
>       <target dev='hdc' bus='ide'/>
>       <readonly/>
>     </disk>
>     <interface type='network'>
>       <mac address='52:54:00:5d:2c:c6'/>
>       <source network='default'/>
>     </interface>
>     <serial type='pty'>
>       <target port='0'/>
>     </serial>
>     <console type='pty'>
>       <target port='0'/>
>     </console>
>     <input type='mouse' bus='ps2'/>
>     <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
>     <video>
>       <model type='cirrus' vram='9216' heads='1'/>
>     </video>
>   </devices>
> </domain>
> 
> 
>>> I use the command 'qemu-img create -b vm1.img -f qcow vdisk.img'
>>> create a new image vdisk.img. When I use virt-manager create a new VM based
>>> on vdisk.img, failed.
>>> The error as below:
>>>
>>> Unable to complete install '<class 'libvirt.libvirtError'> internal error
>>> unable to start guest: qemu: could not open disk image
>>> /media/disk/images/vdisk.img
>>>
>>> Traceback (most recent call last):
>>>   File "/usr/local/share/virt-manager/virtManager/create.py", line 1437, in
>>> do_install
>>>     dom = guest.start_install(False, meter = meter)
>>>   File "/usr/local/lib/python2.6/dist-packages/virtinst/Guest.py", line 795,
>>> in start_install
>>>     return self._do_install(consolecb, meter, removeOld, wait)
>>>   File "/usr/local/lib/python2.6/dist-packages/virtinst/Guest.py", line 896,
>>> in _do_install
>>>     self.domain = self.conn.createLinux(install_xml, 0)
>>>   File "/usr/lib/python2.6/dist-packages! /libvirt.py", line 1077, in
>>> createLinux
>>>     if ret is None:raise libvirtError('virDomainCreateLinux() failed',
>>> conn=self)
>>> libvirtError: internal error unable to start guest: qemu: could not open
>>> disk image /media/disk/images/vdisk.img
>>>
>>> But if I don't use virt-manager. I just use the command
>>> kvm -hda vdisk.img -m 1024 -cdrom rhel-server-5.4-i386-dvd.iso -boot d
>>> or kvm vdisk.img -m 1024
>>> The VM could running.
>>>
>>> So I want to ask whether the virt-manager support the disk created by
>>> 'qemu-img create -b vm1.img -f qcow vdisk.img' or not.
>>>
>>> Thank you very much.
>>>

There is a similar bug already filed against libvirt in fedora:

https://bugzilla.redhat.com/show_bug.cgi?id=579067

I don't think the security drivers know to change permissions of qcow2
backing files when launching a domain. The simplest way to work around
this is to edit /etc/libvirt/qemu.conf and set

security_driver="none"
user="root"
group="root"

This provides less security, but is basically what we were doing in F11
and earlier. You may also need to 'setenforce 0' to set selinux to
permissive.

- Cole




More information about the virt-tools-list mailing list