On 02/15/2012 12:56 PM, Jun Koi wrote:
>
> On Wed, Feb 15, 2012 at 11:32 AM, Alex Jia<ajia(a)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(a)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(a)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_s...
> 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.