在之前的文章中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