[libvirt-users] [libvirt] Fail to import available VM image

Jun Koi junkoi2004 at gmail.com
Wed Feb 15 06:43:20 UTC 2012


On Wed, Feb 15, 2012 at 1:35 PM, Alex Jia <ajia at redhat.com> wrote:
> On 02/15/2012 12:56 PM, Jun Koi wrote:
>>
>> On Wed, Feb 15, 2012 at 11:32 AM, Alex Jia<ajia at redhat.com>  wrote:
>>>
>>> On 02/15/2012 10:53 AM, Jun Koi wrote:
>>>>
>>>> On Wed, Feb 15, 2012 at 1:01 AM, Laine Stump<laine at laine.org>    wrote:
>>>>>
>>>>> On 02/14/2012 11:01 AM, Jun Koi wrote:
>>>>>>
>>>>>> On Tue, Feb 14, 2012 at 11:47 PM, Alex Jia<ajia at redhat.com>    wrote:
>>>>>>>
>>>>>>> Hi Jun,
>>>>>>> I assume you haven't changed libvirt default URI, it may be a issue,
>>>>>>> I want to know whether it works for you if you explicitly specify
>>>>>>> --connect qemu:///system with virt-install? I think a root reason
>>>>>>> probably is your disk image location, the log said it can't find
>>>>>>> storage volume, if you put img.winp under the
>>>>>>> /var/lib/libvirt/images,
>>>>>>> then give a disk absolute path to virt-install, Does it work for you?
>>>>>>
>>>>>> ok, i change the command a bit, and it went further.
>>>>>> here is how i did:
>>>>>>
>>>>>> (1) compiled everything from source, then install (make install) to my
>>>>>> Ubuntu
>>>>>>
>>>>>> (2) start libvirtd on commandline
>>>>>> # libvirtd -d
>>>>>>
>>>>>> (3) import my KVM image to libvirt
>>>>>>
>>>>>> $ virt-install --connect qemu:///system -n winxp -r 800 --accelerate
>>>>>> --vnc -v --noautoconsole --import -f /home/jun/img/img.winxp
>>>>>>
>>>>>> it failed, and the log is like below:
>>>>>>
>>>>>> ....
>>>>>> [Tue, 14 Feb 2012 23:51:49 virt-install 3831] DEBUG (cli:326)
>>>>>> Requesting libvirt URI qemu:///system
>>>>>> [Tue, 14 Feb 2012 23:51:51 virt-install 3831] DEBUG (cli:328) Received
>>>>>> libvirt URI qemu:///system
>>>>>> [Tue, 14 Feb 2012 23:51:52 virt-install 3831] DEBUG (virt-install:259)
>>>>>> Requesting virt method 'hvm', hv type 'default'.
>>>>>> [Tue, 14 Feb 2012 23:51:52 virt-install 3831] DEBUG (virt-install:469)
>>>>>> Received virt method 'hvm'
>>>>>> [Tue, 14 Feb 2012 23:51:52 virt-install 3831] DEBUG (virt-install:470)
>>>>>> Hypervisor name is 'kvm'
>>>>>> [Tue, 14 Feb 2012 23:51:52 virt-install 3831] ERROR (cli:439) Error in
>>>>>> network device parameters: Virtual network 'default' has not been
>>>>>> started.
>>>>>> [Tue, 14 Feb 2012 23:51:52 virt-install 3831] DEBUG (cli:440)
>>>>>> Traceback (most recent call last):
>>>>>>   File "/usr/local/lib/python2.6/dist-packages/virtinst/cli.py", line
>>>>>> 884, in get_networks
>>>>>>     dev = parse_network(guest, netstr, mac=mac)
>>>>>>   File "/usr/local/lib/python2.6/dist-packages/virtinst/cli.py", line
>>>>>> 1642, in parse_network
>>>>>>     bridge=opts.get("bridge"))
>>>>>>   File
>>>>>>
>>>>>> "/usr/local/lib/python2.6/dist-packages/virtinst/VirtualNetworkInterface.py",
>>>>>> line 153, in __init__
>>>>>>     self.network = network
>>>>>>   File
>>>>>> "/usr/local/lib/python2.6/dist-packages/virtinst/XMLBuilderDomain.py",
>>>>>> line 309, in new_setter
>>>>>>     fset(self, val, *args, **kwargs)
>>>>>>   File
>>>>>>
>>>>>> "/usr/local/lib/python2.6/dist-packages/virtinst/VirtualNetworkInterface.py",
>>>>>> line 257, in set_network
>>>>>>     "started.") % newnet)
>>>>>> ValueError: Virtual network 'default' has not been started.
>>>>>
>>>>> A very common cause of this problem is that a systemwide instance of
>>>>> dnsmasq is already (erroneously) listening on the bridge created by
>>>>> libvirt for the default network. I took your email as an oppurtunity to
>>>>> write an entry in the new Troubleshooting section of the libvirt wiki.
>>>>> It will explain to you how to solve your problem (*if* this is your
>>>>> problem, of course :-).
>>>>
>>>> this is not my problem, as i dont use dnsmasq.
>>>
>>> You means you haven't a dnsmasq process is running before starting
>>> virtual
>>> network 'default', right? I want to know a cmdline argument of the
>>> dnsmasq
>>> process by ps -ef|grep dnsmasq
>>>
>>>> below is my /var/log/libvirt/libvirtd.log
>>>>
>>>> ....
>>>> 2012-02-15 01:54:18.358+0000: 10580: info : libvirt version: 0.9.10
>>>> 2012-02-15 01:54:18.358+0000: 10580: error : virCommandWait:2308 :
>>>> internal error Child process (/sbin/iptables --table mangle --delete
>>>> POSTROUTING --out-interface virbr0 --protocol udp --destination-port
>>>> 68 --jump CHECKSUM --checksum-fill) status unexpected: exit status 2
>>>> 2012-02-15 01:54:18.367+0000: 10580: error : virCommandWait:2308 :
>>>> internal error Child process (/sbin/iptables --table mangle --insert
>>>> POSTROUTING --out-interface virbr0 --protocol udp --destination-port
>>>> 68 --jump CHECKSUM --checksum-fill) status unexpected: exit status 2
>>>> 2012-02-15 01:54:18.367+0000: 10580: warning :
>>>> networkAddGeneralIptablesRules:1301 : Could not add rule to fixup DHCP
>>>> response checksums on network 'default'.
>>>> 2012-02-15 01:54:18.367+0000: 10580: warning :
>>>> networkAddGeneralIptablesRules:1302 : May need to update iptables
>>>> package&    kernel to support CHECKSUM rule.
>>>>
>>>>
>>>>
>>>> and currently output of "brctl show" is:
>>>> # brctl show
>>>> bridge name     bridge id               STP enabled     interfaces
>>>> pan0            8000.000000000000       no
>>>> virbr0          8000.000000000000       yes
>>>
>>> If you manually stop virtual network 'default' and dnsmasq service then
>>> restart 'default'
>>> network, does it work for you? for instance:
>>> % virsh net-destroy default
>>>
>>> % service dnsmasq status
>>> if your dnsmasq is still active then stop it, otherwise, please ignore
>>> the
>>> following step:
>>> % service dnsmasq stop
>>>
>>> make sure you haven't any dnsmasq process is running by ps -ef|grep
>>> dnsmasq,
>>> then
>>> active 'default' network again:
>>>
>>> % virsh net-start default
>>> if the above step is failed, please give related logs and virsh output.
>>>
>>> what's dnsmasq process with cmdline?
>>> % ps -ef|grep dnsmasq
>>>
>>>
>>> Good Luck!
>>
>> thanks so much, Alex. it works for me now!
>>
>> it turns out i uninstalled the dnsmasq, but it seems there is
>> dependency on it (why we need dnsmasq, anyway?).
>
> Libvirt uses dnsmasq to serve DHCP for the virtual network, IMHO, you should
> see the following
> link carefully again, it's a good guide for troubleshoting your 'default'
> virtual network:
> http://wiki.libvirt.org/page/Virtual_network_%27default%27_has_not_been_started
>
>> so i reinstalled it
>> again, but then disable dnsmasq service. then the default virtual
>> network works.
>>
>> a quesiton: i imported the existent KVM image with command:
>>
>> virt-install --connect qemu:///system -n winxp -r 800 --accelerate
>> --vnc -v --noautoconsole --import -f /home/jun/img/img.winxp
>>
>> but this is not really correct, as the above command doesnt do something
>> for me:
>>
>> (1) it doesnt tell the image format (qcow2 in my case)
>
> Libvirt doesn't autodetect storage format due to potential security issue,
> so you need to explicitly specify 'format' to qcow2, otherwise, defaults to
> raw format, for example:
>
> % virt-install --connect qemu:///system -n winxp -r 800 --accelerate
> --vnc -v --noautoconsole --disk /home/jun/img/img.winxp,format=qcow2
> --import
>
> For details, please see virt-install man page.
>
>> (2) it doesnt setup the mouse cursor (-usb -usbdevice tablet)
>>
>> (3) it doesnt tell the network card model.
>
> There are some default value for these, please see virt-install man page
> carefully.
>
>> so questions are:
>>
>> (1) can i tell virt-install of of above info? i looked at the
>> virt-install manual, but dont see anywhere to do that.
>
> Yes, you can, see 'Device Options' and 'Networking Configuration' section in
> man page.
>
>> (2) in case virt-install cannot do that, i guess i must use another
>> tool to modify /etc/libvirt/qemu/winxp.xml to reflect my requirement.
>> but then i tried virt-manager (0.9.1), and it doesnt even let me
>> modify the configuration of my domain.
>>
>> so which tool should i use to modify available libvirt domain?
>
> If you only want to modify domain configuration, virsh edit should be
> enough, libvirt provides a group of users layer virsh commands, you
> may also use virsh commands to operate libvirt such as installation
> a guest.
>

i found all of those options, thanks so much!!!
Jun




More information about the libvirt-users mailing list