KVM访客不启动

我在Ubuntu Oneiric Server 64 AMD上安装了KVM。

uname -a Linux myhostname 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux 

我试图用相同的操作系统创build一个guest。 首先我试过这个:

 vmbuilder kvm ubuntu \ --suite oneiric --flavour virtual --arch amd64 \ --libvirt qemu:///system \ --ip 192.168.0.100 \ --hostname myguest \ --part vmbuilder.partition \ --user adminUser --name fullname--pass defaultPass \ --addpkg apache2 --addpkg apache2-utils --addpkg tomcat6 --addpkg mysql-client \ --addpkg mysql-server --addpkg wwwconfig-common --addpkg dbconfig-common \ --addpkg apache2.2-common --addpkg unattended-upgrades --addpkg vim \ --addpkg openssh-server \ --mem 2048 \ --bridge br0 

(为此,我需要分别configuration串口控制台btw)

那么这个:

 virt-install \ --connect qemu:///system -n myguest -r 2048 -f myguest.qcow2 \ -s 12 -c ubuntu-11.10-server-amd64.iso --vnc --noautoconsole --os-type linux \ --os-variant ubuntuOneiric --accelerate --network=network:default 

在这两种情况下,客人都成功地生成了。 然后,我尝试启动客人:

 virsh start myguest virst list --all Id Name State ---------------------------------- 4 myguest running 

接下来我尝试连接到控制台:

 virsh --connect qemu:///system console myguest Connected to domain myguest Escape character is ^] 

那之后什么也没发生 这两个客人的行为是相同的。 我也尝试远程连接。

在某些情况下,KVM会达到100%的CPU使用率。 现在它不使用CPU。

远程连接时,控制台输出更有意思:

 Booting from Harddisk 

而没有别的。 另外我不能调用virsh shutdown myhost ,我只能使用destroy命令。

任何人都可以指出我可能犯的错误吗?

 dpkg --list | grep qemu ii qemu-common 0.14.1+noroms-0ubuntu6.2 ii qemu-keymaps 0.15.50-2011.08-0ubuntu4 ii qemu-kvm 0.14.1+noroms-0ubuntu6.2 ii qemu-kvm-extras 0.15.50-2011.08-0ubuntu4 ii qemu-system 0.15.50-2011.08-0ubuntu4 ii qemu-user 0.15.50-2011.08-0ubuntu4 ii python-vm-builder 0.12.4+bzr469-0ubuntu1 ii libvirt-bin 0.9.2-4ubuntu15.2 ii libvirt0 0.9.2-4ubuntu15.2 ii python-libvirt 0.9.2-4ubuntu15.2 ii virtinst 0.600.0-1ubuntu1 

我在/var/log/libvirt/libvirt.log看到的唯一日志输出发生在我销毁客户端并尝试连接到控制台之前:

 11:49:28.072: 1441: error : qemuMonitorIO:576 : internal error End of file from monitor 

为了连接到串行控制台,您需要客人先支持它。 这意味着guest console=ttyS0必须将console=ttyS0附加到grub.conf中的内核启动行。 这也意味着VM的libvirtconfiguration应该包含以下内容:

 <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> 

正如评论中所build议的,我通过使用又一个工具来创build客人来解决这个问题。 这是一个名为虚拟机pipe理器的graphics工具,我可以通过它远程连接到我的kvm,并从我放在服务器上的iso映像创build一个guest虚拟机。

我知道这不是一个真正的解决scheme,但我不会追求其他选项,因为我find了创build客人的方法。

我在Ubuntu 12.04主机上遇到类似的问题:

  • 我用ubuntu-vm-builder创buildguest(ubuntu精确)
  • virsh start testguest – >通过VNC控制台告诉我“从硬盘启动”
  • kvm正在使用CPU 100% … argh

/var/log/libvirt/libvirtd.log显示了我:

 2013-11-19 18:25:10.551+0000: 9815: warning : qemuCapsInit:856 : Failed to get host power management capabilities 2013-11-19 18:25:13.122+0000: 9815: error : virExecWithHook:327 : Cannot find 'pm-is-supported' in path: No such file or directory 

看起来vm-builder需要一些电源pipe理工具。

 apt-get install pm-utils 

主持人为我解决了这个问题。