大多数人使用XEN的虚拟机是硬件虚拟化(HVM)的。HVM虚拟机兼容性好,稳定。但是HVM虚拟机默认是不支持 xl console的,因此我们需要修改一些配置文件,让其支持xm/xl console 的连接方式。
1. 虚拟机之外
首先,我们要修改虚拟机的配置文件。在原来的虚拟机配置文件中加上这一行
serial='pty'
2.虚拟机内
在 kernel grub里添加相应的端口,我们console连接的虚拟机内端口是ttyS0,同时为了保证虚拟机内也能正常使用端口,再添加tty1端口,速率是9600
3. 验证console是否有效
串口设置好后重启,然后用 xl console或者xm console连接虚拟机,发现虚拟机串口输出成功了,最后停在 battery 状态下。到这里为止xl console顺利实现了,谢谢大家的阅读,再见!
隐藏关!:
如果这种简单的console你不满意,心想这也太坑爹了,卡在这个地方有什么用。登录才是最重要的。那么请看后面的内容吧。
最后一点:
如果只是console联过去,什么还不能做那就没意义了。因此最重要的是连进去登录。之前一直无法登录,因为是端口没设置对等等。直到后来发现串口登录必须要用getty初始化ttyS0 才行。于是添加文件如下:
文件所在目录: /etc/init/
文件名: ttyS0.conf
内容:
start on stopped rc RUNLEVEL=[2345] and (
not-container or
container CONTAINER=lxc or
container CONTAINER=lxc-libvirt)
stop on runlevel [!2345]
respawn
exec /sbin/getty -8 9600 ttyS0
start on stopped rc RUNLEVEL=[2345] and (
not-container or
container CONTAINER=lxc or
container CONTAINER=lxc-libvirt)
stop on runlevel [!2345]
respawn
exec /sbin/getty -8 9600 ttyS0
添加完上述文件后重启
则可以成功登录虚拟机,这次不会卡在 checking battery state了!
参考资料
http://wiki.xen.org/wiki/XenCommonProblems