On Wed, Feb 15, 2012 at 1:35 PM, Alex Jia <ajia@xxxxxxxxxx> wrote: > On 02/15/2012 12:56 PM, Jun Koi wrote: >> >> On Wed, Feb 15, 2012 at 11:32 AM, Alex Jia<ajia@xxxxxxxxxx> wrote: >>> >>> On 02/15/2012 10:53 AM, Jun Koi wrote: >>>> >>>> On Wed, Feb 15, 2012 at 1:01 AM, Laine Stump<laine@xxxxxxxxx> wrote: >>>>> >>>>> On 02/14/2012 11:01 AM, Jun Koi wrote: >>>>>> >>>>>> On Tue, Feb 14, 2012 at 11:47 PM, Alex Jia<ajia@xxxxxxxxxx> 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