在之前的文章中http://blog.csdn.net/dobell/article/details/9003421,给出了XEN console 连接HVM的方式,那么在KVM下,如何使用libvirt库的virsh console 连接HVM呢?其实同样很简单
其实要实现,并不难。首先,我们需要在 virsh启动的虚拟机XML文件 kvm201.xml 中插入以下标签
<span style="font-size:14px;"><devices>
<serial type='pty' tty='/dev/pts/4'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
</devices></span>
注意,serial和console 标签必须添加在devcies 标签内,否则 libvirt库无法识别要添加console设备。
然后我们启动虚拟机,virsh create kvm201.xml,在虚拟机kvm201的/boot/grub/grub.cfg文件中添加console,如下图所示
如果是grub2系统,请修改/etc/default/grub文件,
GRUB_CMDLINE_LINUX=" console=tty0 console=ttyS0",然后update-grub
如果串口输入时,希望能看到并控制grub,那么还得加上下面这段话
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
这段表示grub本身支持串口输出
光是这样无法用console登录,只能看到启动信息,所以我们还要添加 ttyS0的ssh启动。 在 虚拟机中的 /etc/init/ttyS0.conf 添加如下信息
接着 重启虚拟机,reboot,virsh console kmv201,发现可以连接了
* Starting ACPI daemon [ OK ]
* Starting regular background program processing daemon [ OK ]
* Starting deferred execution scheduler [ OK ]
* Starting CPU interrupts balancing daemon [ OK ]
* Starting crash report submission daemon [ OK ]
apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.188.201 for ServerName
[ OK ]
* Starting Tomcat servlet engine tomcat7 [ OK ]
* Checking battery state... [ OK ]
Ubuntu 12.04.1 LTS kvm201 ttyS0
kvm201 login: root