我已经在 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
我尝试使用相同的操作系统创建客户机。首先我尝试这样做:
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
(为此我需要单独配置串行控制台)
然后是这个:
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 的 CPU 使用率会达到 100%。目前它没有使用 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
答案1
为了连接到串行控制台,您需要客户机首先支持它。这意味着客户机必须已console=ttyS0
在 grub.conf 中附加到内核启动行。这也意味着虚拟机的 libvirt 配置应包含以下内容:
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
答案2
正如评论中所建议的,我使用另一种工具创建客户机,从而解决了这个问题。这是一个称为虚拟机管理器的图形工具,通过它我可以远程连接到我的 kvm,并从我放在服务器上的 iso 映像创建客户机。
我知道这不是真正的解决方案,但既然我找到了创建客人的方法,我就不会寻求其他选择。
答案3
我在 ubuntu 12.04 主机上遇到了类似的问题:
- 我使用 ubuntu-vm-builder 创建客户机(ubuntu precise)
virsh start testguest
-> VNC 控制台告诉我“从硬盘启动”- kvm 使用 CPU 100%...啊
/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 需要一些电源管理工具。
apt-get install pm-utils
主持人为我解决了这个问题。