By default GRUB for Ubuntu 16.04 doesn't provide connectivity via the console. As such this needs to be added and you will then be able to connect to the VM using:

virsh console VM-NAME

The first step is to mount the guest VM to a directory on the host such that GRUB on the guest can be edited. Run the following command on the host to mount the VM to a directory for editing:

sudo guestmount -d VM-NAME -i /mnt

Save the file and edit grub with the following:

sudo nano /mnt/etc/default/grub

Change the following line from:



GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,19200n8'

The next step is to edit grub.cfg and add the ability to connect to the VM using the console:

sudo nano /mnt/boot/grub/grub.cfg

Scroll down to the section with the entry menuentry 'Ubuntu' --class ubuntu --class gnu-linux and add the following after the letters ro on the line starting with linux:

console=ttyS0,19200 earlyprint=serial,ttyS0,19200

The line will look something like the following:

linux   /boot/vmlinuz-4.4.0-92-generic root=UUID=cabab962-f23c-4a36-a5bd-0e43df6cff40 ro console=ttyS0,19200 earlyprint=serial,ttyS0,19200  quiet splash $vt_handoff

Save the file, and unmount the VM's filesystem using the following:

sudo guestunmount /mnt

Finally, restart the VM and connect to it's console as follows:

virsh start VM-NAME && virsh console VM-NAME