如何在XCP中访问VM控制台?

我在Ubuntu 12.10中安装了xcp-xapi软件包。 我已经在XenCenter中创build了一个PV虚拟机,但是我无法访问它的控制台 – 当我在XenCenter中select“控制台”选项卡时,我只是空白页面。

我试着通过控制台,得到这个:

bear@ubuntu-tmp1:~$ sudo xe vm-list params=dom-id dom-id ( RO) : 0 dom-id ( RO) : 2 bear@ubuntu-tmp1:~$ sudo xenstore-ls /local/domain/2/serial 0 = "" limit = "65536" bear@ubuntu-tmp1:~$ 

根据这个官方的链接 ,我至less应该在输出中看到'tty'和'vnc',但我都没有看到它们…现在我完全没有办法在该虚拟机上安装操作系统,因为没有可用的控制台。 🙁

有一个隐藏的CLI命令(为此,我提交了一个请求,使其非隐藏):

 xe console uuid=<vm_uuid> 

请注意,这只适用于PV客人。 或者,对于PV和HVM guest虚拟机,您可以使用vncviewer来获得VNC控制台。 使用xenstore获取VNC端口:

 PORT=xenstore-read /local/domain/${domid}/console/vnc-port 

然后打电话给:

 vncviewer -via root@${YOUR_SERVER} localhost::${PORT} 

这是一个脚本,为你做到这一点:

 #!/bin/bash function usage () { echo "Usage:" echo " `basename $0` -h <xenserver host> -g <guest vm name-label>" echo " `basename $0` -h <xenserver host> -u <guest vm uuid>" echo " `basename $0` -h <xenserver host> -d <domID>" exit 1 } while getopts "h:g:u:d:" option do case $option in h ) xs=${OPTARG} ;; g ) vm=${OPTARG} ;; u ) uu=${OPTARG} ;; d ) id=${OPTARG} ;; * ) usage esac done if [ -z ${xs} ]; then usage fi if [ -z ${uu} ] && [ -z ${vm} ] && [ -z ${id} ]; then usage fi if [ ! -z ${uu} ]; then domid=`ssh root@${xs} xe vm-list uuid=${uu} params=dom-id --minimal` elif [ ! -z ${vm} ]; then domid=`ssh root@${xs} xe vm-list name-label=${vm} params=dom-id --minimal` elif [ ! -z ${id} ]; then domid=${id} fi if [ -z ${domid} ]; then echo "Could not find guest ${vm}${uu} on host ${xs}." exit 1 elif [ ${domid} -lt 0 ]; then echo "Guest ${vm}${uu} has no dom-id. Is your vm running?" exit 1 fi port=`ssh root@${xs} xenstore-read /local/domain/${domid}/console/vnc-port` if [ -z ${port} ]; then echo "Couldn't read VNC port from xenstore. Is your vm running?" exit 1 fi echo "Connecting to vnc port ${port} on host ${xs}..." set -x vncviewer -via root@${xs} localhost::${port}