Enabling VM serial console on stock Ubuntu 10.04 server
So I've been running Ubuntu 10.04 server virtual machines on a host running KVM as the hypervisor, and thought I should take a look at accessing the VM's console from the host, in case there's a problem with the networking on the VM.
The hosts's VM libvirt definition shows a serial port and console defined with
<serial type='pty'>
<source path='/dev/pts/1'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/1'>
<source path='/dev/pts/1'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
and within the stock Ubuntu 10.04 server VM, dmesg | grep ttyS0
shows:
[ 0.174722] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.175027] 00:05: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
So the virtual hardware is all setup on both ends, but ps aux | grep ttyS0
doesn't show anything
We need to have a process listening to that port. To do that, create a file named /etc/init/ttyS0.conf
with these contents:
# 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 38400 ttyS0 xterm-color
and then run
initctl start ttyS0
back in the host machine run virsh list
to find the name or id number of your VM, and then
virsh console <your-vm-name-or-number>
to connect, hit return and you should see a login prompt.