KVM 客户机无法启动

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

我尝试使用相同的操作系统创建客户机。首先我尝试这样做:

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

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

相关内容