在 Ubuntu 14.10 上安装 Windows 2012 KVM Guest - 无法通过 VNC 进入 Guest 系统

在 Ubuntu 14.10 上安装 Windows 2012 KVM Guest - 无法通过 VNC 进入 Guest 系统

我有一台 Ubuntu 14.10 (x64) 主机,并且正在使用 KVM 在其上设置 Windows 2012 R2 客户虚拟机。

我正在使用virt-install命令来设置一切。

我已经设置了一个桥接网络,/etc/network/interfaces如下所示:

# The primary network interface
auto br0
iface br0 inet dhcp
    bridge_ports    eth0
    bridge_stp      off
    bridge_maxwait  0
    bridge_fd       0

我的virt-install命令行是:

virt-install --connect qemu:///system --arch=x86_64 -n win2012 --ram 4096 --cpu host --vcpus=2 --hvm --disk size=80,sparse=false,format=raw,bus=virtio -
-cdrom /srv/sunix/en_windows_server_2012_r2_with_update_x64_dvd_6052708.iso --os-type=windows --os-variant=win2k8 --network bridge=br0,model=virtio --noautoconsole

Starting install...
Allocating 'win2012-1.img'                                                                                                                                    |  80 GB     00:00
Creating domain...                                                                                                                                            |    0 B     00:01
Domain installation still in progress. Waiting  for installation to complete.

似乎在那个点等待了相当长一段时间。我想使用 vnc 连接到盒子看看发生了什么。

尽管我使用了--noautoconsole,但我的理解是 VNC 显示仍应默认创建。但是,这是 的输出vncdisplay

virsh vncdisplay win2012
error: Failed to get VNC port. Is this domain using VNC?

这是输出domiflist

virsh domiflist win2012
Interface  Type       Source     Model       MAC
-------------------------------------------------------
vnet0      bridge     br0        virtio      52:54:00:1d:dd:ab

但是,根据我的本地 DHCP 服务器,该设备尚未尝试声明 DHCP 租约。

我想这可能是因为virtio我选择了网络驱动器,而 Windows 2012 R2 并不支持它。

但是,还有什么办法可以连接到盒子吗?

另外,您在我设置这位客人的方式中发现什么问题吗?

答案1

我会明确地在此处指定--graphics vnc,以确保万无一失。在安装 SPICE 客户机工具时,请务必将其更改为 SPICE。

另外,您选择 Windows 2008 作为要安装的操作系统。为什么不选择 2012 R2?--os-variant win2k12r2

答案2

VM VNC 有两种类型,

  • 由虚拟机管理程序(又名 qemu)提供的 VNC。
  • 并且 VNC 由 VM 自身提供。

显然,libvirt 和 qemu 不知道“虚拟机自身提供的 VNC”,cmd“virsh vncdisplay”实际上从“虚拟机管理程序提供的 VNC”中提取 vnc 绑定信息,而您的 virt-install cmd 行并没有指示 libvirt 这样做。

因此,您的案例与客户网络信息无关,并且@Michael Hampton 是正确的,您应该在构建虚拟机时指定“vnc 绑定信息”。

如果您想保留当前的 ​​VM,但需要向其附加“vnc bind info”,方法如下:

EDITOR=vim virsh 编辑 ${your domain} 和如下部分:

<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='en-us'>
  <listen type='address' address='0.0.0.0'/>
</graphics>

然后关闭虚拟机并重新启动。我希望您能够“virsh vncdisplay”。:)

相关内容