我在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主机上遇到类似的问题:
virsh start testguest
– >通过VNC控制台告诉我“从硬盘启动” /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
主持人为我解决了这个问题。