我使用virt-install创build了一个虚拟机,使用Ubuntu 14.04.01 LTS服务器ISO作为安装介质。 在安装阶段,我通过graphics控制台连接到虚拟机。
现在我有虚拟机运行:我可以ssh到它,否则工作正常。 我可以按照启动过程,与:
virsh console my-vm
但是我无法看到login提示。 我怎样才能访问login提示通常通过PTY分配?
可以直接使用串行控制台接口访问KVM访客,在这种情况下,不需要设置桥接networking,SSH等。 通过串行控制台访问提供了另一种访问服务器的方式来补充或replace默认的VNC访问。
这是使用virsh实用程序完成的,该实用程序是libvirt的shell界面。
virsh ttyconsole my_vm如果显示输出(例如/ dev / pts / 41),则表示Guest已经有控制台设备。
否则,用virsh编辑定义一个。 这里是一个要添加到<device></device>的例子。 有关详细信息,请参阅libvirt XML格式。
<console type='pty'>
(guest)Ubuntu 9.10(Karmic)及更高版本的configuration方法。
sudo editor /etc/init/ttyS0.conf
添加configuration:
# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 115200 ttyS0 xterm
sudo start ttyS0
在这里,我们使用“xterm”作为terminaltypes,如果我们使用gnome-terminal(或xterm)实例进行连接,那么效果很好。 这可能最好设置为匹配将用于连接的terminaltypes。 这可以在您将用于连接的主机/客户机terminal中使用此命令find:
echo $TERM
例如,如果你正在运行的屏幕是“屏幕”,对于byobu“screen-bce”等
当您已经连接到控制台时,您还可以临时设置该variables:
export TERM=screen
首先我们连接到(本地)qemu会话:
virsh -c qemu:///session (这是可选的,如果你不想使用virsh控制台,你可以简单地用bash命令加上virsh ,即virsh start my_vm , virsh console my_vm等等)
现在在virsh shell中,启动虚拟机:
start my_vm
当它开始连接到控制台时:
console my_vm
按返回获取login提示,并像往常一样login(请注意,即使没有显示login提示,用户名input仍然有效)。
你在!
杂项笔记
使用Ctrl + ]退出控制台。
如果控制台奇怪地显示或显示不正确,请检查TERMvariables设置是否正确(参见上文)。
如果terminal似乎切断了输出的顶部,将其更改为具有80×24的可视区域,例如在byobu中,这意味着您需要考虑状态栏,并将窗口本身设置为80×26
从https://help.ubuntu.com/community/KVM/Access进行了一些小的调整,这些指令已被无耻地复制